Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django多级查询_Python_Django - Fatal编程技术网

Python Django多级查询

Python Django多级查询,python,django,Python,Django,我使用自定义创建的用户模型,我有两个基本模型: class Subject(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL) title = models.TextField(max_length=1000) class Topic(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL) subject =

我使用自定义创建的用户模型,我有两个基本模型:

class Subject(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    title = models.TextField(max_length=1000)

class Topic(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    subject = models.ForeignKey(Subject)
是否有任何方法(没有任何类似的外部包)来查询属于特定主题且由特定用户创建的主题?我的意思是,当用户登录时,我想列一个这样的列表:

已编辑:以下是我要制作的列表:

你好,用户。感谢您登录

您的物品:

  • 主题1

    • 专题1
    • 专题2
  • 项目2

    • 专题1
等等

我不知道该怎么做。这可能很容易,因为我只是一个乞丐


编辑:答案是一个简单的嵌套for循环,很抱歉造成了任何混乱。

问题仍然令人困惑,因为仍然没有对主题或主题进行查询。您只需遍历用户的主题,对于每个主题,您都要遍历主题

<ul>
  {% for topic in user.topic_set.all %}
    <li>{{ topic.title }}
      <ul>
        {% for subject in topic.subject_set.all %}
          <li>{{ subject.title }}</li>
        {% endfor %}
      </ul>
    </li>
  {% endfor %}
</ul>
    {user.topic_set.all%}中的主题为%
  • {{topic.title}}
      {topic.subject\u set.all%中的主题为%s}
    • {{subject.title}}
    • {%endfor%}
  • {%endfor%}

这还不太清楚。您说要查询特定主题,但您的示例显示您显示了用户主题的所有主题。你到底想问什么?对不起,我一整天都在编码。我确实想查询主题,这些主题属于特定用户创建的特定主题:用户>主题>主题-我想创建一个对象树,如我发布的问题中所示。通过说“特定主题和用户”,我假设您在进行查询时知道什么是主题和用户,对吗?我不明白你为什么认为这很难。用户可以创建一个主题,然后他可以在特定主题下创建一个主题。在我的应用程序仪表板中,我想创建一个对象树,以便用户在登录时查看:我想列出他的主题,然后在每个主题下列出他的每个主题。这个问题让人困惑,因为我把它搞砸了,对不起。现在我已经编辑好了。非常感谢。编辑:答案是一个简单的嵌套for循环,我可能错过了一些嵌套名称或其他内容,很抱歉把你们弄糊涂了。。