使用多表继承,我有两个模型:
class Bird(models.Model):
color = models.CharField()
class Bluebird(Bird):
...
使用这些模型,我可以这样做:
birds = Bird.objects.all()
for bird in birds:
print bird.color
这非常简单,但我不想让人们在某些情况下定义任意颜色值。例如,我想阻止用户创建Bluebird
个对象,其颜色字段设置为"blue"
以外的任何对象,或者在极少数情况下,"grey"
或"brown"
。换句话说,我想在choices
模型中的继承color
字段上设置Bluebird
kwarg。从粗略的互联网搜索来看,似乎Django目前不允许模型子类覆盖父级的字段。
如何在定义孩子可接受的选择的同时保留对父类color
字段的访问权限?
编辑:这个问题集中在Django< 1.8。在1.8中,添加了为字段choices
kwarg传递可调用内容的功能,虽然这样很好,但我处理的系统还没有升级过目前不支持升级。
答案 0 :(得分:0)
使用财产。
您可以为每个模型定义颜色值,然后将其作为属性返回,如果颜色将被修复,则在数据库中不需要它。
=IFERROR(VLOOKUP(A2,Sheet2!A:F,4,FALSE),A2)