-
檢查用戶是否具有特定權限是一項相對常見的任務。出於這個原因,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參數,裝飾器將引發,提示 403(HTTP Forbidden)視圖,而不是重定向到登錄頁麵。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): ...當
的LoginViewredirect_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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
