前提・実現したいこと
現在、Djangoを使用しWebアプリ開発を行っています。
管理画面でclassにアイテムを追加する際ログインしているuserに紐づく項目のみ表示しかつ、紐づいていない項目は追加できないようにすることは可能でしょうか?
ご教授お願い致します。
models.py
python
1class User(AbstractBaseUser): 2 email = models.EmailField( 3 verbose_name='email', 4 max_length=255, 5 unique=True, 6 ) 7 company_id = models.ForeignKey(Companies, on_delete=models.CASCADE, null=True) 8 is_active = models.BooleanField(default=True) 9 is_admin = models.BooleanField(default=False) 10 is_superuser = models.BooleanField(default=False) 11 12 objects = UserManager() 13 14 USERNAME_FIELD = 'email' 15 REQUIRED_FIELDS = [] 16 17 def __str__(self): 18 return self.email 19 20 def has_perm(self, perm, obj=None): 21 return True 22 23 def has_module_perms(self, app_label): 24 return True 25 26 @property 27 def is_staff(self): 28 return self.is_admin 29 30class Companies(models.Model): 31 name = models.CharField(max_length=100) 32 33 def __str__(self): 34 return self.name 35 36class Partners(models.Model): 37 name = models.CharField(max_length=100) 38 company_id = models.ForeignKey(Companies, on_delete=models.CASCADE) 39 40 def __str__(self): 41 return self.name 42 43class items(models.Model): 44 name = models.CharField(max_length=100) 45 partner_id = models.ForeignKey(Partners, on_delete=models.CASCADE) 46 price = models.IntegerField( 47 blank=False, 48 null=False, 49 default=0, 50 ) 51 52 def __str__(self): 53 return self.name 54 55 56 57 58
イメージ
上記のitemsクラスに追加する際にログインしているuserのcompany_idに紐づいているpartner_idしか選択できない。
補足情報(FW/ツールのバージョンなど)
python 3.8
あなたの回答
tips
プレビュー