【发布时间】:2020-01-21 06:28:49
【问题描述】:
我想在具有多个参数的路线上获取我的子模块的详细信息。 我现在现有的路线是:
http://localhost:8000/api/module/ - 获取所有模块
http://localhost:8000/api/module/1/ - 获取所有模块和连接的子模块
我想做http://localhost:8000/api/module/1/submodules/1,它将获取子模块的详细信息。我应该如何使用基于类的视图来做到这一点?
以下是我现有的代码:
Views.py
class CourseModuleViewSet(viewsets.ModelViewSet):
queryset = CourseModule.objects.all()
serializer_class = CourseModuleSerializer
def retrieve(self, request, pk=None):
coursemodule = CourseModule.objects.get(id=pk)
submodule = SubModule.objects.filter(submodule_module_id=pk)
serializer = SubModuleSerializer(submodule, many=True)
response = {'message': 'Sucess!',
'result': serializer.data}
return Response(serializer.data, status=status.HTTP_200_OK)
Serializers.py
class CourseModuleSerializer(serializers.ModelSerializer):
class Meta:
model = CourseModule
fields = ['class_id', 'coursemodule_title', 'coursemodule_date_created',
'coursemodule_last_modified', 'coursemodule_created_by']
class SubModuleSerializer(serializers.ModelSerializer):
submodule_module_id = CourseModuleSerializer(many=False)
class Meta:
model = SubModule
fields = ['submodule_module_id','submodule_title', 'submodule_date_created', 'submodule_last_modified',
'submodule_created_by']
urls.py
router = routers.DefaultRouter()
router.register('module', CourseModuleViewSet)
urlpatterns = [
path('', include(router.urls)),
]
【问题讨论】:
标签: django django-rest-framework