如何在Django APIView中通过GET方法将Choices序列化为指定JSON格式?
解决方案
你可以通过以下步骤实现需求:
在
views.py中编写APIView类
导入必要模块和你定义的MATH_CHOICES_TYPE,创建继承自APIView的视图类,重写get方法处理请求并转换数据格式。示例代码:
from rest_framework.views import APIView from rest_framework.response import Response from .choices import MATH_CHOICES_TYPE class MathChoicesView(APIView): def get(self, request): # 将元组转换为目标格式的列表 formatted_choices = [ {"value": value, "display_name": display_name} for value, display_name in MATH_CHOICES_TYPE ] # 包装成要求的JSON结构并返回 return Response({"MATH_CHOICES_TYPE": formatted_choices})配置URL路由
在项目urls.py中添加该视图的路由,让前端可访问:from django.urls import path from .views import MathChoicesView urlpatterns = [ # 其他路由... path('math-choices/', MathChoicesView.as_view(), name='math-choices'), ]
发送GET请求到/math-choices/即可得到目标JSON结构。另外注意你定义的MATH_CHOICES_TYPE里第二个选项是'teste2',而目标JSON里是'test2',如果是笔误,直接修改choices.py里的对应值即可。
内容的提问来源于stack exchange,提问作者chea
相关产品推荐
相关产品推荐

