-
檢查用戶是否具有特定權限是一項相對常見的任務。出於這個原因,Django 為這種情況提供了一個快捷方式:
permission_required()
from django.contrib.auth.decorators import permission_required @permission_required('polls.add_choice') def my_view(request): ...
就像
has_perm()
"<app label>.<permission codename>"
的形式(即polls.add_choice
表示polls
應用程序中模型的權限)。裝飾器還可以獲取可迭代的權限,在這種情況下,用戶必須擁有所有權限才能訪問視圖。
請注意,
permission_required()
login_url
參數:from django.contrib.auth.decorators import permission_required @permission_required('polls.add_choice', login_url='/loginpage/') def my_view(request): ...
與
login_required()
login_url
默認為settings.LOGIN_URL
如果給定
raise_exception
參數,裝飾器將引發PermissionDenied
如果你想使用
raise_exception
,但也讓你的用戶有機會先登錄,你可以添加login_required()
from django.contrib.auth.decorators import login_required, permission_required @login_required @permission_required('polls.add_choice', raise_exception=True) def my_view(request): ...
當
LoginView
redirect_authenticated_user=True
和 logged-in 用戶沒有所有必需的權限時,這也避免了重定向循環。
本文介紹 django.contrib.auth.decorators.permission_required
的用法。
聲明
permission_required(perm, login_url=None, raise_exception=False)
相關用法
- Python Django permission_denied用法及代碼示例
- Python pandas.arrays.IntervalArray.is_empty用法及代碼示例
- Python pyspark.pandas.Series.dropna用法及代碼示例
- Python pyspark.pandas.groupby.SeriesGroupBy.unique用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.api.types.is_timedelta64_ns_dtype用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
- Python pandas.DataFrame.apply用法及代碼示例
- Python pyspark.pandas.Series.dt.weekday用法及代碼示例
- Python pyspark.pandas.DataFrame.select_dtypes用法及代碼示例
- Python pyspark.pandas.date_range用法及代碼示例
- Python pyspark.pandas.isnull用法及代碼示例
- Python pyspark.pandas.Series.hasnans用法及代碼示例
- Python pandas.DataFrame.combine_first用法及代碼示例
- Python pyspark.pandas.Series.rmul用法及代碼示例
- Python pyspark.sql.functions.grouping_id用法及代碼示例
- Python pyspark.pandas.Series.str.repeat用法及代碼示例
- Python pyspark.pandas.DataFrame.groupby用法及代碼示例
- Python pandas.Series.iloc用法及代碼示例
- Python pyspark.ml.feature.DCT用法及代碼示例
- Python pandas.Timestamp.to_numpy用法及代碼示例
- Python pyspark.sql.functions.hours用法及代碼示例
- Python pandas.Index.value_counts用法及代碼示例
- Python pyspark.pandas.Series.add_prefix用法及代碼示例
- Python pandas.DatetimeTZDtype用法及代碼示例
注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.contrib.auth.decorators.permission_required。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。