【发布时间】:2018-04-17 16:10:58
【问题描述】:
我的应用中有一个模型,该模型包含同一模型上的 many_to_many 字段,但带有过滤器。更清楚地说,这就是我所拥有的:
class Places(models.Model):
user = models.OneToOneField('User')
common_kwargs = dict(to='places.Place', blank=True)
place1_kwargs = dict(
common_kwargs.items() + {
'limit_choices_to': {'site__token': 'site1'},
'related_name': '%(app_label)s_%(class)s_place1',
'verbose_name': _('Place 1')
}.items()
)
place1= models.ManyToManyField(**place1_kwargs )
place2_kwargs = dict(
common_kwargs.items() + {
'limit_choices_to': {'site__token': 'site2'},
'related_name': '%(app_label)s_%(class)s_place2',
'verbose_name': _('Place 2')
}.items()
)
place2 = models.ManyToManyField(**place2_kwargs)
这是Place 应用程序中的Place 模型:
class Place(models.Model):
site= models.ForeignKey(Site, verbose_name=_('Site'))
name = models.CharField(verbose_name=_('Name'),unique=True, max_length=255, db_index=True)
city = models.CharField(max_length=255, verbose_name=_('City'), null=True)
这是站点模型:
class Site(models.Model):
token = models.CharField(_('Token'), max_length=255, unique=True, editable=False)
name = models.CharField(_('Name'), max_length=255)
我尝试为Places 模型创建工厂,但我不知道如何设置Site 的过滤器?
有人可以帮我吗? 提前致谢。
【问题讨论】:
标签: django django-models django-tests factory-boy