私は2つのモデルを持っています:
class Category(MPTTModel):
name = models.CharField(max_length=50,unique=True)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
def __unicode__(self):
return self.name
class Product(models.Model):
name = models.CharField(max_length=50)
categories = models.ManyToManyField(Category,related_name='products')
def __unicode__(self):
return self.name
カテゴリは構造のようなツリーに従っており、「リーフ カテゴリ」にのみ製品を追加したいと考えています。
私が電話my_category.products.create(...)
などをすると、my_category.is_leaf_node() == False
失敗するはずです。my_category に既に製品がある場合も同様で、失敗するはずです
。
これらのチェックは save メソッドで行われますか? カスタムマネージャーで?または他のどこか?検証はモデルレベルで行いたいと思います。my_category.children.create(...)