2017-11-23 4 views
0

私は従業員が自分の役割に基づいて全体のアプリケーションを制御するように割り当てられるように、従業員のロールモデルを作成しました。私は、従業員の役割がcan_create_onlyであれば、従業員は在庫、注文、品目などを作成できなければならず、従業員にcan_create_edit_and_deleteが与えられれば、その従業員は管理者などのようになります。以下のようなモデルですが、私はそのようなことを処理する最良の方法は何か、そしてなぜそれを知りたいのですか?djangoで従業員のカスタムロールを作成する

私はミドルウェアまたはデコレータの方法で行ってください。誰も私に例を挙げてくれますか?

class Role(models.Model): 
    name = models.CharField(max_length=100, blank=False, null=False) 

    class Meta: 
     verbose_name = 'Role' 
     verbose_name_plural = 'Roles' 


class Employee(models.Model): 
    office = models.ForeignKey(
     OfficeSetup, blank=False, null=False, on_delete=models.CASCADE) 
    name = models.CharField(max_length=150, blank=False, null=False) 
    designation = models.ForeignKey(Designation, blank=False, null=False) 
    section = models.ForeignKey(DepartmentSetup, blank=True, null=True) 
    phone_number = models.CharField(max_length=150, blank=True, null=True) 
    mobile_number = models.CharField(max_length=150, blank=True, null=True) 
    email = models.EmailField(max_length=150, blank=False, null=False) 
    gender = models.CharField(
     max_length=4, choices=GENDER, blank=True, null=True) 
    role = models.ForeignKey(Role, blank=True, null=True) 
    username = models.CharField(max_length=100, blank=False, null=False) 
    password = models.CharField(max_length=100, blank=False, null=False) 
    avatar = models.ImageField(
     null=True, blank=True, upload_to=upload_employee_image_path) 

    class Meta: 
     verbose_name = 'Employee' 
     verbose_name_plural = 'Employees' 

    def __str__(self): 
     return self.name 

管理者、ユーザ名、パスワード、および電子メールで従業員を作成し、管理者は

答えて

1

Djangoはすべての最もすべてあなたを提供し、グループと権限が付属していた従業員と一緒に新しいユーザーインスタンスを作成します提供します探しています。 これはあなたを助けるかもしれません - How do I use Django groups and permissions? Djangoのドキュメント - https://docs.djangoproject.com/en/1.11/topics/auth/

+0

私に例を教えてもらえますか?ドキュメント私は理解しづらいと感じました – Serenity

+0

私が間違っていないと、ドキュメンテーションは特定のモデルの設定権限のみを示していますが、私のユースケースはすべてのモデルの権限を一度に設定しています – Serenity

関連する問題