0
我正在尝试开发一个论坛应用程序。如何避免模板中的逻辑?
我正试图显示列表页面上每个类别中发布的最新主题。不过,我在添加了多个类别之后意识到,我需要为每个单独的类别单独进行查询,或者只显示整个最新的主题。
我只是不知道如何让我的逻辑在查询的视图。很明显,我可以在我的for循环中执行查询,但这看起来不是很适合MVT。
这里是我的views.py:
from django.shortcuts import render
from .models import ForumReply, ForumCategory, ForumTopic
def index(req):
categories = ForumCategory.objects.all()
#find latest topic or topic by reply
topic = ForumTopic.objects.latest('created_at')
reply = ForumReply.objects.latest('created_at')
if (topic.created_at > reply.created_at):
latest = topic
else:
latest = reply.topic
return render(req, "forum/category_listing.html",
{'categories': categories, 'latest': latest})
而且我category_listing.html:
{% extends '__base.html' %}
{% block content %}
{% for category in categories %}
<div class="forum_category">
<h1><a href="{% url 'forum_topic_list' category.pk 1 %}">{{ category.title }}</a></h1>
{{ category.body }}
<br />
<em>Latest Post: </em> {{ latest.title }} by {{ latest.user }} at {{ latest.created_at|date:"D d F Y h:i" }}
</div>
<br />
{% endfor %}
{% endblock %}
而是担心如何做到这一点的模板,你应该找到一种方法,做这件事的**一个**数据库查询。 – Sevanteri
我对Django很新,所以有一点帮助将不胜感激。几乎没有擦过它的ORM的一角 –
就个人而言,我不能帮助,因为我多年来没有使用过Django。但[Django文档](https://docs.djangoproject.com/ja/1.9/topics/db/queries/#related-objects)当然有很多关于该主题的信息,并且一些Google搜索会给出你一大堆教程和指南。 – Sevanteri