我有这个型号:
class PetAttribute(models.Model):
species = models.ForeignKey(PetSpecies, related_name = "pets")
pet_category = models.ForeignKey(PetCategory, related_name = "pets", blank=True, null=True)
pet_type = models.ForeignKey(PetType, related_name = "pets", blank=True, null=True)
additional_fields= models.ManyToManyField( AdditionalField, null= True, blank=True )
现在我想在select(pet_category,pet_type)中添加一个附加选项,这是
( “0”, “其他”)
在这些查询集中。我试过但表格给我一个错误
错误:选择有效选项。这个选择不是可用的选择之一。
here是它的一个解决方案,但我想通过 ModelChoiceField
来做到这一点有什么建议吗?
谢谢:)
答案 0 :(得分:1)
虽然有可能,但您确定这是您想要做的吗?您正在告诉一个字段,该字段验证模型对象的选择以接受无效的答案。
创建“其他”PetType和PetCategory对象或使用empty_label
作为“other”可能比强制ModelChoiceField接受任意值更有意义。
然后查找选中“其他”的对象,查询“无”,
pattrs_w_other_pet_type = PetAttribute.object.filter(pet_type=None)