前提
DjangoでWebアプリケーションを作っています。
例として、下記のモデルがあります。
Python
1class Department(models.Model): # 部署 2 name = models.CharField(max_length=10) # 部署名 3 manager = models.ForeignKey('Employee') # 課長 4 5class Employee(models.Model): # 従業員 6 name = models.CharField(max_length=10) # 従業員名 7 grade = models.SmallIntegerField() # 役職等級 1-5まであり3以上が課長になれる
実現したいこと
上記の例において、Departmentのmanagerに設定できるEmployeeは、grade>=3 のEmployeeに制限したいです。
FormのValidatorを用いて実現することは可能と思いますが、そうではなく、Model側で行いたいです。
理由としては、Formのほかに、API(DjangoRestFramwrorkにより実装)と管理画面からもレコードの追加が行えるようになっており、それぞれに同じ処理を書くのを避けたいためです。
補足情報(FW/ツールのバージョンなど)
Python : 3.8.10
Django : 3.2.13
djangorestframework : 3.13.1

あなたの回答
tips
プレビュー