我有一个Django模型,它与一个附加列有很多关系:
class Field(models.Model):
table = models.ForeignKey(Table, on_delete=models.CASCADE, verbose_name=_(u"Table"), related_name="fields")
supportedLanguages = models.ManyToManyField(Language,
through='FieldsLanguages',
through_fields=('field', 'language'),
verbose_name=_(u"Supported language"),
help_text=_(
u"The language that the field supports (must be a language supported by the table.")
)
这是我的直通表:
^{pr2}$我想在一个查询中从through表及其语言中检索每个defaultValue。在
我以为这能起到作用:
table = Table.objects.get(pk=1)
fields = list(table.fields.prefetch_related("supportedLanguages").all().order_by("position"))
但不幸的是,它没有给我每个关系的默认值,只得到它的语言。它可以在同一个查询中完成,因为查询已经通过FieldsLanguages来检索外键。在
你知道我该怎么做吗?在
谢谢。在
through表与其他表一样是一个表,这意味着您可以通过其
ForeignKeys
的相关名称来引用它。在这并不是我真正想要的,但它帮助我构建了我的查询:
kevinchristopher Henry的答案的问题是,它将查询for循环中每个字段的数据库。在这里它将只发送4个查询。在
无论如何谢谢你的帮助。在
相关问题 更多 >
编程相关推荐