Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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,所以我上了这堂课。现在对于这门课,我有两个选择:“课堂”和“研讨会”,我希望每次我在其中任何一门课上添加一节课,模板将首先显示选择,然后显示所有的课。 示例:课程将有讲师1、讲师2、讲师3等。 现在的问题是,当我迭代时,选择每次都会显示,每次讲座都会显示,我希望每个选择只显示一次 class Lecture(models.Model): course = models.ForeignKey('Course', on_delete=models.CASCADE, default='', r

所以我上了这堂课。现在对于这门课,我有两个选择:“课堂”和“研讨会”,我希望每次我在其中任何一门课上添加一节课,模板将首先显示选择,然后显示所有的课。 示例:课程将有讲师1、讲师2、讲师3等。 现在的问题是,当我迭代时,选择每次都会显示,每次讲座都会显示,我希望每个选择只显示一次

class Lecture(models.Model):
    course = models.ForeignKey('Course', on_delete=models.CASCADE, default='', related_name='lectures')
    lecture_category = models.IntegerField(choices=((0, "Classes "),
                                                    (1, "Seminars"),
                                                    ))
    lecture_title = models.CharField(max_length=100)
    content = models.TextField()
    link = models.URLField(blank=True)
    file = models.FileField(upload_to='documents', blank=True)

    def __str__(self):
        return self.lecture_title
    {%中的c为%} {{c.get_讲座_分类_显示}

  • {{c.演讲题目}
  • {{c.content}}
  • {%if c.link%}
  • {{c.link}
  • {%if c.file%}
  • {%endif%} {%endif%} {%endfor%}

有一个名为regroup的模板标记,可用于此操作。请参阅第页的“重组”部分

{%按讲座类别将讲座重新分组为类别列表%}
    {类别列表%中的类别的百分比}
  • {{category.grouper}}
      {category.list%中c的%s}
    • {{c.演讲题目}
    • {{c.content}}
    • 等 {%endfor%}
  • {%endfor%}
编辑:
正如Daniel Roseman所指出的,您还必须按照要在视图中重新组合的字段对查询进行排序。在这种情况下,您必须按讲座类别安排讲座。否则,上述方法将不起作用。

有一个名为regroup的模板标记可用于此操作。请参阅第页的“重组”部分

{%按讲座类别将讲座重新分组为类别列表%}
    {类别列表%中的类别的百分比}
  • {{category.grouper}}
      {category.list%中c的%s}
    • {{c.演讲题目}
    • {{c.content}}
    • 等 {%endfor%}
  • {%endfor%}
编辑:
正如Daniel Roseman所指出的,您还必须按照要在视图中重新组合的字段对查询进行排序。在这种情况下,您必须按讲座类别安排讲座。否则上述方法将不起作用。

我们可以获得实际输出的屏幕截图吗?在这里我们可以得到实际输出的屏幕截图吗?在这里,我添加了一个示例,假设您希望查询结果按字段“讲座\类别”字段分组。在将讲座发送到模板之前,您还需要按讲座\类别对其进行排序。您说得很对。为了完整起见,我把它添加到了答案中。是的。最后我成功了。感谢您的支持。我添加了一个示例,假设您希望查询结果按字段“讲座\类别”字段分组。您还需要按讲座\类别对讲座进行排序,然后再将其发送到模板。您说得很对。为了完整起见,我把它添加到了答案中。是的。最后我成功了。谢谢你的支持。
{% regroup lectures by lecture_category as category_list %}

<ul>
{% for category in category_list %}
    <li>{{ category.grouper }}
    <ul>
        {% for c in category.list %}
          <li>{{ c.lecture_title }}</li>
          <li>{{ c.content }}</li>
          ...etc
        {% endfor %}
    </ul>
    </li>
{% endfor %}
</ul>