我有以下型号:
class Product(models.Model):
provinces = models.ManyToManyField('Province', related_name='formats')
默认情况下,产品可以在每个省份销售。如何定义模型“产品”,以便创建的每个产品默认都包含所有省份?
谢谢!
答案 0 :(得分:4)
使用默认密钥。您不能直接将默认模型值设置为像列表一样的迭代,因此将它们包装在可调用的中,如Django文档所述:https://docs.djangoproject.com/en/1.8/ref/models/fields/
def allProvinces():
return provincesList
provinces = models.ManyToManyField('Province', related_name='formats', default=allProvinces)
答案 1 :(得分:1)
你不能直接向M2M添加列表,你应该先获取对象:
def allProvinces():
provinceList = Province.objects.all()
return provinceList
然后添加 default=allProvinces :)
答案 2 :(得分:0)