2010-05-23 20 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

相關問題