2017-06-27 51 views
0

我正在嘗試創建權限,以便每個用戶都能夠看到特定作者的文章。示例權限爲Can view author1Can view author2等和Can view all。在這篇文章中I類嘗試創建權限如下:根據django中的模型字段名稱創建權限

class Article(models.Model) 
    #some not important stuff 
    class Meta: 
     permissions = (
      ('view_%s' % Author.name, 'Can view %s' % Author.name), 
      ('view_all', 'Can view all'), 
     ) 

這並沒有從工作,我所知道的權限存儲在數據庫中,所以它甚至有可能產生的權限這樣?

回答

0

我想一個更好的設計的解決方案是:

class Author(models.Model): 
    ... 
    my_allowed_viewers = models.ManyToManyField('self', related_name='views_allowed', reverse=False) 

,然後作出這樣

class IsAuthorizedReader(permissions.BasePermission): 

    def has_permission(self, request, view): 
     author_id = request.user.id 
     author_to_view_id = request.data.get('author_to_view_id') 
     if author_to_view_id is not None: 
      return Authors.objects.get(pk=author_to_view_id).my_allowed_viewers.filter(author_id).exists() 
     return False 
+0

許可這不是我想實現,我想創建的權限元取決於作者的名字。 – filtfilt

+0

對不起,我不知道如何實現... –

相關問題