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