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