0
我有一个模型Article
和几个ArticleDescription
(每种语言一个)。如何过滤反向连接?
class Article(models.Model):
articleid = models.CharField(primary_key=True, max_length=100)
def __unicode__(self):
return str(self.articleid)
class ArticleDescription(models.Model):
article = models.ForeignKey(Article, on_delete=models.CASCADE)
lang = models.CharField(max_length=2, default='en', blank=False, null=False)
description = models.TextField(blank=True, null=True)
class Meta:
unique_together = ('article', 'lang')
def __unicode__(self):
return str(self.description)
我现在挣扎如何使联接在我的模板中只选择当前语言的描述。
我使用此代码,让我的文章:
c = models.Article.objects.all().order_by('articleid')
在c
,我有我的ArticleDescriptions
在我的模板可用这样的:
{% for b in c %}
{{ b.articledescription_set.all }}
{% endfor %}
不过,我不希望所有的说明,只是当前语言的一个。所以我要寻找的东西,如:
c = models.Article.objects.all().join(ArticleDescription, lang=curlang).order_by('articleid')
,然后我可以用这样的描述我的模板:
{% for b in c %}
{{ b.articledescription.description }}
{% endfor %}
但是,我不知道如何做到这一点,或在哪里看。
由于它的工作原理,但应注意的是'b.filtered_descriptions'是ArticleDescription'的'数组。 –
是的,这不是你想要的吗? –
是的,它很好。在这种情况下,我知道这只是一次打击。另一个小问题是,我可以在'filter'的'Q'对象中使用'filtered_descriptions'吗? –