-
检查用户是否具有特定权限是一项相对常见的任务。出于这个原因,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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。