オブジェクトの他のフィールドのロジックを使用して、Django のモデル レイヤーにロジックを埋め込む方法はありますか? これは複雑に聞こえるので、サンプルコードをいくつか書きました。私は継承を使用したくありません.1つを除くすべてのフィールドが共有されており、物事が複雑になりすぎます。
class Creature(models.Model):
numberOfEyes = models.IntegerField()
type = models.CharField(max_length=30, choices=TYPE_CHOICES)
これは私が達成しようとしているものであり、機能することを意図したものではありません
if self.numberOfEyes == 1:
TYPE_CHOICES = (
('cyclops', 'cyclops')
)
else:
TYPE_CHOICES = (
# You get the idea
)
このロジックをモデル層に埋め込む方法はありますか? または、これをフォームで定義する必要がありますか?