如何在一个网页中调用多个 APIView 作为项目列表?
How to call multiple APIView in one single web page as a list of items?
我正在使用 django rest 框架开发一个测验项目,在该要求下,我需要在一个页面中列出每个 table。下面是代码片段。
class QuizList(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'adminView.html'
def get(self, request):
queryset = Quiz.objects.all()
return Response({'quiz': queryset})
class AnswerList(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'adminView.html'
def get(self, request):
queryset = Answer.objects.all()
return Response({'answer': queryset})
class QuestionList(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'adminView.html'
def get(self, request):
queryset = Question.objects.all()
return Response({'question': queryset})
在上面的代码片段中,我能够在我的网页中列出第一个 class "QuizView"。但除此之外,当我尝试添加其他 APIView 时,它们根本就没有发生。下面是 HTML 模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Admin View</title>
</head>
<body>
<ul>
{% for quizez in quiz %}
<a href="" onclick="">{{ quizez.name }}</a>
{% endfor %}
</ul>
<ul>
{% for questions in question %}
<li>{{ questions.label }}</li>
{% endfor %}
</ul>
<ul>
{% for answers in answer %}
<li>{{ answer.text }}</li>
{% endfor %}
</ul>
</body>
</html>
我试图将所有 for 循环放在一个 "ul" 中,但即使这样也行不通。请帮助
谢谢
为什么不只有一个视图 class?
class AllView(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'adminView.html'
def get(self, request):
quiz_queryset = Quiz.objects.all()
answer_queryset = Answer.objects.all()
question_queryset = Question.objects.all()
return Response({
'quiz': quiz_queryset,
'answer': answer_queryset,
'question': question_queryset
})
我正在使用 django rest 框架开发一个测验项目,在该要求下,我需要在一个页面中列出每个 table。下面是代码片段。
class QuizList(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'adminView.html'
def get(self, request):
queryset = Quiz.objects.all()
return Response({'quiz': queryset})
class AnswerList(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'adminView.html'
def get(self, request):
queryset = Answer.objects.all()
return Response({'answer': queryset})
class QuestionList(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'adminView.html'
def get(self, request):
queryset = Question.objects.all()
return Response({'question': queryset})
在上面的代码片段中,我能够在我的网页中列出第一个 class "QuizView"。但除此之外,当我尝试添加其他 APIView 时,它们根本就没有发生。下面是 HTML 模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Admin View</title>
</head>
<body>
<ul>
{% for quizez in quiz %}
<a href="" onclick="">{{ quizez.name }}</a>
{% endfor %}
</ul>
<ul>
{% for questions in question %}
<li>{{ questions.label }}</li>
{% endfor %}
</ul>
<ul>
{% for answers in answer %}
<li>{{ answer.text }}</li>
{% endfor %}
</ul>
</body>
</html>
我试图将所有 for 循环放在一个 "ul" 中,但即使这样也行不通。请帮助
谢谢
为什么不只有一个视图 class?
class AllView(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'adminView.html'
def get(self, request):
quiz_queryset = Quiz.objects.all()
answer_queryset = Answer.objects.all()
question_queryset = Question.objects.all()
return Response({
'quiz': quiz_queryset,
'answer': answer_queryset,
'question': question_queryset
})