Django Python : 为特定用户添加自定义权限

Django Python : adding custom permissions to specific users

Models.py

class Meta:
    permissions = (
        ("can_add_data","can add a new data"),
        )

这是我在 Models.py 中创建的自定义权限,我还创建了这些用户。

Users in Django Admin ie., http://localhost:8000/admin

如何向特定用户授予权限,以便我可以在 views.py 中使用 @permission_required('myapp.can_add_data') 还有我在哪里写代码片段? (在哪个文件中)

我是这方面的初学者,所以如果有任何错误,请告诉我。

您可以通过 Django AdminDjango shell
为用户分配权限 到django-shell
通过 python manage.py shell 和 运行 以下语句

打开你的 django 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)


至django-admin
打开您的 django-admin 页面并前往 Users 部分和 select 您想要的 user.
在那里你可以看到 User permissions 部分,如下图所示,



然后,找到您想要的权限 (ref-1)(在您的情况下 app_name|model_name|can add a new data)并单击 (ref-2ref-3), 然后保存

注意:权限分配过程是 one-time 的事情,所以你不必每次都更新它,除非你需要 change/re-assign 权限。

如何在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")