2017-01-17 22 views
0

私はモデルを持っています。のフィールドには、date_created、comment、description、amountの項目があります。各支払いはユーザーに属します。定期的に(彼の支払いをCRUDすることができます)、マネージャ(できるCRUDユーザー)、管理者(すべてをCRUDすることができます):Djangoで異なる権限を実装する方法は?

class Payment(models.Model): 
    author = models.ForeignKey('auth.User') 
    amount = models.FloatField(max_length=10) 
    description = models.CharField(max_length=128) 
    created_date = models.DateTimeField(
      default=datetime.now()) 
    comment = models.TextField(max_length=256) 

    def __str__(self): 
     return self.description 

今私は、ユーザーごとに異なる役割を実装する必要があります。したがって、主な問題は、登録時にユーザーにこの役割を実装する方法です(さらに変更することはできません)。私はまた、登録時にapi(django rest framework)を介してこの役割を設定する必要があります。

+0

そこに二つの質問を決めました。簡単に言えば、ユーザモデルに 'CharField'をロール選択肢を付けて追加し、DRFが –

+0

に提供したパーミッションクラスで確認することができます。基本的に、あなたは既に質問に記載されています。1.あなたはパーミッションを作成する必要があります。2.このパーミッションをユーザーに割り当てます。3.ユーザーが異なるアクションを実行する権限を持っている場合はビューをチェックインします。 –

答えて

0

は最後に内蔵された権限のユーザージャンゴにあなたがそれを分離する必要があり

#e.g. 
content_type = ContentType.objects.get_for_model(User) 
permission = Permission.objects.get(codename='admin_can_manage_users') 
user.user_permissions.add(permission) 
+0

あなたの答えを「正しい」とマークして、この質問が「未回答」セクションから消えるようにします。 –

関連する問題