【发布时间】:2018-10-21 10:05:46
【问题描述】:
我有一个由 3 个不同模型扩展的父类。父类有一个名为foo 的字段,可以说,对于其中一个子类,该字段必须始终为空。我怎样才能确保这一点?现在,我正在使用null=True 和editable=False 约束。但是,如果在对象创建期间公开了该字段,则可以通过 shell 或 API 绕过这些。
class ThirdSubclass(ParentClass):
# Over-ridden field from abstract parent class
foo = models.PositiveSmallIntegerField(blank=True, null=True, editable=False)
我也在使用 PositiveSmallIntegerField,因为我想为这个字段分配尽可能少的空间。无论如何,我该怎么做?覆盖保存方法是唯一的选择吗?理想情况下,我会喜欢字段定义中的某些内容。谢谢!
【问题讨论】:
-
我怀疑您是否可以通过字段定义来实现这一点 - 但覆盖
model.save()应该可以正常工作。
标签: django django-models