Ben*_*nNG 1 django django-models
我目前正在学习python / django作为自己的教程,我已经做到了:
手动进行“实例许可”似乎很复杂,对吧?
干杯
首先,我们必须创建2个权限
from django.db import models
class Article(models.Model):
title = models.TextField()
content = models.TextField()
class Meta:
permissions = (
('can_view_odd_ids', 'can_view_odd_ids'),
('can_view_even_ids', 'can_view_even_ids'),
)
def __str__(self):
return self.title
Run Code Online (Sandbox Code Playgroud)
运行迁移后,我们可以使用Shell手动将权限应用于用户
odd_even = Permission.objects.get(name='can_view_even_ids')
user_yui = User.objects.get(username='yui')
user_yui.user_permissions.add(odd_even)
user_yui.save()
Run Code Online (Sandbox Code Playgroud)
然后在视图中测试对我们用户的许可(类似这样)
def my_view(request):
data = {}
if request.user.is_authenticated():
count = Article.objects.all().count()
if request.user.has_perm("account.can_view_odd_ids"):
data = {'articles': Article.objects.all()[1::2]})
elif request.user.has_perm("account.can_view_even_ids"):
data = {'articles': Article.objects.all()[0::2]})
return render(request, 'index.html', data)
Run Code Online (Sandbox Code Playgroud)