Django ManyToMany 默认所有值

Mic*_*ael 1 python django django-orm

我有以下模型:

class Product(models.Model):
    provinces = models.ManyToManyField('Province', related_name='formats')
Run Code Online (Sandbox Code Playgroud)

默认情况下,产品可以在每个省销售。如何定义模型“产品”,以便默认情况下创建的每个产品都包含所有省份?

谢谢!

Sam*_*day 6

使用默认密钥。您不能直接将默认模型值设置为像列表这样的可迭代对象,因此将它们包装在一个可调用对象中,正如 Django 文档所建议的那样:https : //docs.djangoproject.com/en/1.8/ref/models/fields/

def allProvinces():
    return provincesList

provinces = models.ManyToManyField('Province', related_name='formats', default=allProvinces)
Run Code Online (Sandbox Code Playgroud)