python - Django 模板 - 列表迭代

标签 python django django-templates

我有 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/

相关文章:

Python - 根据提供的模式生成文件名

python - 如何在不尝试任何身份验证的情况下获取 boto3 STS 客户端?

python - django MultiValueDictKeyError 错误,我该如何处理

django - 如何在模板中将 anchor 添加到 django url

python - linux下通过脚本/命令行替换PE EXE文件中的资源

python - 避免在每个页面上运行 GeoIP

django - tinymce django 没有出现

django - 使用 Django 1.7 中的 AppConfig 就绪方法在 Django 启动时加载静态数据

python - Jinja2中的多级模板继承?

django - 在模板中显示上传的图像 - Django