小编Amb*_*i R的帖子

Django rest框架:将queryset转换为json响应

我有两个模型,Appointment和EmployeeEvent.我需要从这些模型中获取数据,并将结果合并到一个get api请求中.

urls.py

url(r'^calenderevents', calender_events)
Run Code Online (Sandbox Code Playgroud)

views.py

@api_view(['GET'])
def calender_events(request):
    queryset1 = Appointment.objects.all()
    queryset2 = EmployeeEvent.objects.all()
    return Response({'Appointments':json.loads(serializers.serialize('json', queryset1)), 'EmployeeEvents': json.loads(serializers.serialize('json', queryset2))})
Run Code Online (Sandbox Code Playgroud)

当我调用API时,我得到结果,但它包含一些不需要的键,如"pk","model","fields"等.另外在命名结果中,我需要完整的客户对象而不是客户ID.有没有办法指定CustomerSerializer和查询集?

结果越来越好了

{
  "Appointments": [
    {
      "pk": "33a0fffb-326e-4566-bfb4-b146a87a4f3f",
      "model": "appointment.appointment",
      "fields": {
        "customer": "25503315-8bac-4070-87c1-86bf0630c846",
        "status": "Requested",
        "description": "Assigned appointment",
      }
    },
    {
      "pk": "9da806f5-77f1-41e6-a745-7be3f79d6f7a",
      "model": "appointment.appointment",
      "fields": {
        "customer": "25503315-8bac-4070-87c1-86bf0630c846",
        "status": "Requested",
        "description": "Assigned appointment",
      }
    }
  ],
  "EmployeeEvents": [
    {
      "pk": "f76b5de0-1ab8-4ac3-947d-15ba8941d97d",
      "model": "employee_event.employeeevent",
      "fields": {
        "event_name": "New Event",

        "start_date": "2017-02-17",
        "end_date": "2017-02-22"
      }
    },
    {
      "pk": "56f02290-370e-426c-951e-a93c57fde681", …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-serializer

1
推荐指数
1
解决办法
3426
查看次数

标签 统计

django ×1

django-models ×1

django-serializer ×1

python ×1