Python 如何访问Django中的多对多属性

Python 如何访问Django中的多对多属性,python,django,many-to-many,Python,Django,Many To Many,我对web开发非常陌生,我已经使用Django创建了一个示例项目。到目前为止,我有一个Django支持的页面,显示我的数据库模型对象之一的内容,该对象称为Publications。我的视图模板中的代码是: <html><head><title>Publications</title></head> <body> <h1>Publications</h1> <ul> {% for publi

我对web开发非常陌生,我已经使用Django创建了一个示例项目。到目前为止,我有一个Django支持的页面,显示我的数据库模型对象之一的内容,该对象称为Publications。我的视图模板中的代码是:

<html><head><title>Publications</title></head>
<body>
<h1>Publications</h1>
<ul>
{% for publication in publication_list %}
<li>{{ publication.title }} </li>
{% endfor %}
</ul>
</body></html>
我的出版物和标签型号包括:

class Tag(models.Model):
    title = models.CharField(max_length=50)

class Publication(models.Model):
    title = models.CharField(max_length=200)
    tags = models.ManyToManyField(Tag, blank=True)

非常感谢您的帮助。

您正在做的事情只能访问ManyRelatedManager。您需要指定针对该管理器的查询。在python中,它将是:

publication.tags.all()
{% for tag in publication.tags.all %}
   {{ tag }}
{% endfor %}
在django模板中,它将是:

publication.tags.all()
{% for tag in publication.tags.all %}
   {{ tag }}
{% endfor %}
这应该包含在多对多关系的官方文件中


编辑:这里有一个关于多对多关系工作的好例子:

您所做的只访问ManyRelatedManager。您需要指定针对该管理器的查询。在python中,它将是:

publication.tags.all()
{% for tag in publication.tags.all %}
   {{ tag }}
{% endfor %}
在django模板中,它将是:

publication.tags.all()
{% for tag in publication.tags.all %}
   {{ tag }}
{% endfor %}
这应该包含在多对多关系的官方文件中


编辑:这里有一个关于多对多关系工作的好例子:

因为您似乎在这方面遇到了一些问题,鉴于您对另一个问题的评论,下面是对模板的更改。您根本不需要根据上面给出的内容修改视图

{% for publication in publication_list %}
  <li>{{ publication.title }}
  <ul>
  {% for tag in publication.tags.all %}
    <li>{{ tag.title }} </li>
  {% endfor %}
  </li>
  </ul>
{% endfor %}
{%用于出版物中的出版物\u列表%}
  • {{publication.title}}
      {publication.tags.all%中的标记的%s}
    • {{tag.title}}
    • {%endfor%}
    {%endfor%}
  • 由于您似乎在这方面遇到了一些问题,鉴于您对另一个问题的评论,以下是对模板的更改。您根本不需要根据上面给出的内容修改视图

    {% for publication in publication_list %}
      <li>{{ publication.title }}
      <ul>
      {% for tag in publication.tags.all %}
        <li>{{ tag.title }} </li>
      {% endfor %}
      </li>
      </ul>
    {% endfor %}
    
    {%用于出版物中的出版物\u列表%}
    
  • {{publication.title}}
      {publication.tags.all%中的标记的%s}
    • {{tag.title}}
    • {%endfor%}
    {%endfor%}