0
これは私のmodels.pyです、私はブランドコードを作成するためにsave関数を呼び出しようとしています、また、サブカテゴリの親カテゴリは、他のカテゴリ。私を助けてください。clean()を呼び出すと、必須フィールドがチェックされず、管理パネルにエラーがスローされます。しかし、私はclean()を削除するときに必要なフィールドを検証します
class Brand(models.Model):
category = models.ForeignKey(Category, related_name='category', limit_choices_to={'parent_category__isnull': True})
sub_category = models.ForeignKey(Category, related_name='sub_category', limit_choices_to={'parent_category__isnull': False})
brand_code = models.CharField(max_length=70, null=True, blank=True)
brand_name = models.CharField(max_length=255)
def __str__(self):
return self.brand_name
def create_brand_code(self):
pass
def clean(self):
if not self.sub_category.parent_category == self.category:
raise ValidationError("{} is not the sub category of {}".format(self.sub_category, self.category))
def save(self, *args, **kwargs):
if not self.brand_code:
if self.sub_category.parent_category == self.category:
self.brand_code = self.create_brand_code()
super(Brand, self).save(*args, **kwargs)