【发布时间】:2021-10-03 20:57:18
【问题描述】:
我有示范问答。 我想要完成的是能够以这样的方式在模板中显示它。我想知道一种方法来实现这一点。我正在尽力不让它循环模型中的整个数据,而是一次循环一个数据。我正在尝试制作 qna 数据并使其显示在模板上。所以在答案数据之前显示所有 Questio 数据不是我想要的。这两个模型必须一一对应。我有点接近了......但我仍然无法弄清楚如何做到这一点。任何帮助或建议将不胜感激。提前谢谢你。
Q.title
Q.body
A.body
Q.title
Q.body
A.body
Q.title
Q.body
A.body
modesl.py
from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
class Question(models.Model):
title= models.CharField(max_length= 100)
body= models.TextField()
date_posted= models.DateTimeField(default=timezone.now)
author= models.ForeignKey(User, on_delete= models.CASCADE)
def __str__(self):
return self.title
class Answer(models.Model):
body= models.TextField()
question= models.ForeignKey(Question, on_delete= models.CASCADE)
date_posted= models.DateTimeField(default=timezone.now)
author= models.ForeignKey(User, on_delete= models.CASCADE)
def __str__(self):
return self.body
qna.html 模板
{% extends "info/base.html" %}
{% block content %}
{% for question in questions %}
<h1> Q</h1>
<h3> {{ question.title }} </h3>
{% for answer in answers %}
<h1> A </h1>
<h3> {{ answer.body }}</h3>
{% endfor %}
{% endfor %}
{% endblock content %}
views.py
from django.shortcuts import render
from .models import Question, Answer
def qna(request):
context= {
'questions': Question.objects.all(),
'answers': Answer.objects.all(),
}
return render(request, 'qna/qna.html', context)
【问题讨论】:
-
一个问题可以有多个答案吗?
-
@Jafoor 每个问题我只想要一个答案。设计是只有一名管理员回答所有问题。这是一个小应用程序,所以我打算让它以这种方式工作
标签: python python-3.x django django-models django-templates