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 Admin
或 Django 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-2 和 ref-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")
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 Admin
或 Django shell
为用户分配权限
到django-shell
通过 python 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)
至django-admin
打开您的 django-admin
页面并前往 Users
部分和 select 您想要的 user
.
在那里你可以看到 User permissions
部分,如下图所示,
然后,找到您想要的权限 (ref-1)(在您的情况下 app_name|model_name|can add a new data
)并单击 (ref-2 和 ref-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")