我如何向 Django 模型添加规则,使某些默认情况下不需要的字段,如果设置了另一个字段则需要。甚至反过来
假设我有这个模型:
class Item(models.Model):
name = models.CharField(max_length = 75)
cant_be_sold = models.BooleanField()
flat_price = models.IntegerField(blank = True, null = True, default = None, validators = [MinValueValidator(0)])
defense = models.IntegerField(blank = True, null = True, default = None, validators = [MinValueValidator(0)])
required_classes = models.ManyToManyField('otherappname.Class', related_name = 'Requires_Classes', blank = True, null = True, default = None)
假设这里可能有两种情况;
- 我标记
cant_be_sold
为True
; 现在 flat_price 只能是None
(NULL
) - 我填写
defense
;现在需要选择一个或多个required_classes
我想知道在 Django 中执行此操作的好方法是什么。将帮助我防止错误输入,因为我的 Item 模型有 70 多个属性字段,因为我的系统中的 Item Variances 的扩展很大。