Python全系列 教程
3567个小节阅读:5931.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
修改question_app\serialiazers.py
模块,添加 获取单个问题详情与回答 序列化器
xxxxxxxxxx
321from rest_framework import serializers
2
3from question_app.models import Question
4
5class AnswerSerializer(serializers.ModelSerializer):
6 # 获取用户的昵称
7 user_name = serializers.CharField(source='user.nickname')
8 # 设置格式化
9 create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
10 # 设置回答问题的序列化器
11 class Meta:
12 model = Question
13 fields = ['user_name','content','create_time']
14# 获取单个问题序列化器
15class QuestionDetailSerializer(serializers.ModelSerializer):
16 # 获取用户的昵称
17 user_name = serializers.CharField(source='user.nickname')
18 # 获取问题所在哪个课程分类
19 course_name = serializers.CharField(source='section.chapter.stage.course.name')
20 # 获取问题所在哪个课程阶段
21 stage_name = serializers.CharField(source='section.chapter.stage.name')
22 # 获取问题所在哪个课程章节
23 chapter_name = serializers.CharField(source='section.chapter.name')
24 # 获取问题所在哪个课程小节
25 section_name = serializers.CharField(source='section.name')
26 # 设置格式化
27 create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
28 # 设置回答问题的序列化器
29 answers = AnswerSerializer(many=True,read_only=True,source='children')
30 class Meta:
31 model = Question
32 fields = '__all__'
修改question_app\views.py
模块,添加获取单个问题详情视图
xxxxxxxxxx
81from rest_framework import generics
2
3from .serializers import QuestionDetailSerializer
4
5# 获取单个问题的详情
6class QuestionDetailView(generics.RetrieveAPIView):
7 queryset = Question.objects.all()
8 serializer_class = QuestionDetailSerializer
修改questionl_app\urls.py
模块,添加获取单个问题详情接口路由
xxxxxxxxxx
101from django.urls import path
2
3from . import views
4
5urlpatterns = [
6 path('user_add_question/', views.QuestionAddView.as_view()),
7 path('user_add_answer/', views.AnswerAddView.as_view()),
8 path('questions/', views.QuestionListView.as_view()),
9 path('question/<int:pk>/', views.QuestionDetailView.as_view())
10]