在Django中,可以通过类视图来显示问题答案。类视图是一种基于类的视图,可以更好地组织和重用代码。
要在Django类视图中显示问题答案,可以按照以下步骤进行操作:
View
、TemplateView
、ListView
等。可以在views.py
文件中定义类视图。get()
和post()
,分别用于处理GET和POST请求。render()
函数来渲染模板,并将数据作为上下文传递给模板。以下是一个示例代码,演示如何在Django类视图中显示问题答案:
# views.py
from django.views import View
from django.shortcuts import render
from .models import Question
class QuestionDetailView(View):
def get(self, request, question_id):
question = Question.objects.get(id=question_id)
answers = question.answer_set.all()
return render(request, 'question_detail.html', {'question': question, 'answers': answers})
<!-- question_detail.html -->
<h1>{{ question.title }}</h1>
<p>{{ question.content }}</p>
<h2>Answers:</h2>
<ul>
{% for answer in answers %}
<li>{{ answer.content }}</li>
{% empty %}
<li>No answers yet.</li>
{% endfor %}
</ul>
在上述示例中,QuestionDetailView
是一个继承自View
的类视图。在get()
方法中,通过question_id
参数获取问题对象,并获取与该问题相关联的答案对象。然后,将问题和答案数据传递给模板question_detail.html
进行渲染。在模板中,使用模板语言动态显示问题和答案数据。
这只是一个简单的示例,实际应用中可能涉及更复杂的业务逻辑和模板设计。根据具体需求,可以进一步优化和扩展代码。
领取专属 10元无门槛券
手把手带您无忧上云