Vin*_*uda 2 python django django-models django-permissions
模型.py
class Meta:
permissions = (
("can_add_data","can add a new data"),
)
Run Code Online (Sandbox Code Playgroud)
这是我在 Models.py 中创建的自定义权限,我也创建了这些用户。
Django Admin 中的用户,即 http://localhost:8000/admin
如何向特定用户授予权限,以便我可以@permission_required('myapp.can_add_data') 在 views.py 中使用以及在哪里编写代码段?(在哪个文件中)
我是初学者,所以如果有任何错误,请告诉我。
您可以通过 django-shellDjango Admin或Django shell
通过 django-shell
打开您的 django shellpython manage.py shell并运行以下语句来为用户分配权限
In [1] from django.contrib.auth.models import Permission,User
In [2] permission = Permission.objects.get(name='can add a new data')
In [3] user = User.objects.get(id=user_id)
In [4] user.user_permissions.add(permission)
Run Code Online (Sandbox Code Playgroud)
通过 django-admin
打开您的django-admin页面并前往Users部分并选择您想要的user.
在那里你可以看到User permissions如下图所示的部分,

然后,找到您想要的权限(ref-1)(在您的情况下app_name|model_name|can add a new data)并单击(ref-2和ref-3),然后保存
注意:权限分配过程是一次性的,因此您不必每次都更新它除非您需要更改/重新分配权限。
如何
在你的API中使用这个权限views.py,定义一个这样的视图,
from django.contrib.auth.decorators import permission_required
@permission_required('app_name.can_add_data')
def my_view(request):
# do something
return HttpResponse("response")
Run Code Online (Sandbox Code Playgroud)