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'嗎? –