2010-05-23 16 views

回答

0

当你这样做:

class ObjectPermission(models.Model): 
    user = models.ForeignKey(User) 
    can_view = models.BooleanField() 
    can_change = models.BooleanField() 
    can_delete = models.BooleanField() 

    content_type = models.ForeignKey(ContentType) 
    object_id = models.PositiveIntegerField() 

您可以筛选查询以这种方式设置(在你的方法查询集):

def queryset(self, request): 
    qs = super(YourModelAdmin, self).queryset(request) 
    op = ObjectPermission.objects.filter(user=request.user, can_change=True, content_type=ContentType.objects.get_for_model(YourModel)).values_list('object_id').distinct() 
    qs = queryset.filter(id__in=[id[0] for id in op]) 
    return qs 
+1

那不解决我的问题。我知道如何自定义管理查询集,但我无法理清用Florian的对象权限实现来完成它的实际查询语法。 – Brooks 2010-05-25 15:24:24

+0

布鲁克斯,对不起,我误解了这个问题,但我解决了我的答案 – diegueus9 2010-05-26 21:34:35

相关问题