我有 2 个模型定义如下:
class Article(models.Model):
url = models.URLField(max_length=200, unique=True, null=False)
title = models.CharField(max_length=200, unique=False, null=False)
class List(models.Model):
article = models.ForeignKey(Article, related_name='joining')
list = models.IntegerField(default=0, null=False, unique=False)
查询文章
class InboxView(SomeMixin, generic.ListView):
template_name = '...'
context_object_name = 'article_list'
def get_queryset(self):
return Article.objects.all().prefetch_related('joining')
在我的模板上,这有效:
{% for article in article_list %} {{ article.title }} {% endfor %}
但这并不
{% for article in article_list %} {{ article.list }} {% endfor %}
最佳答案
您将需要这个:
{% for article in article_list %}
{{ article.title }}
{% for t in article.joining.all %}
{{ t.list }}
{% endfor %}
{% endfor %}
由于您正在迭代 the "other" side of the relationship (即文章),您将通过文章的 list_set(you have given the related name“加入”)访问每篇文章的相关 List
。
顺便说一句,您可能想为您的 List
模型找到一个不同的名称。这使得这个讨论有些困惑。
关于python - Django 模板 - 列表迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24101806/