在Serializer中添加深度属性后,外键字段在swagger文档中消失

Cra*_*eek 6 swagger django-rest-framework

每当我定义depth属性时,POST部分中的swagger文档的外键字段都会消失.这看起来很奇怪,因为我depth = 1在我的GET请求中需要相关数据时需要.因此,为了在该POST部分中获取此相关字段参数,我无法删除它.

情况就是这样.

模型:

from django.db import models
from django.conf import settings
# Create your models here.

User = settings.AUTH_USER_MODEL

class Todo(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField("Title", max_length=255)
    completed = models.BooleanField("Completed")
Run Code Online (Sandbox Code Playgroud)

串行器没有depth =1.

from rest_framework import serializers
from models import Todo

class TodoSerializer(serializers.HyperlinkedModelSerializer):
   class Meta:
       model = Todo
Run Code Online (Sandbox Code Playgroud)

Swagger输出: 在此输入图像描述

现在如果我添加depth = 1Swagger不显示相关字段. 在此输入图像描述

如果有人对此有任何线索,请告诉我.

谢谢 :)

Yog*_*esh 0

您需要按如下方式更新序列化程序

class TodoSerializer(serializers.HyperlinkedModelSerializer):
creator = serializers.RelatedField(queryset=User.objects.all())

class Meta:
    model = Todo
    fields = ("name", "task", "creator")
    depth = 1
Run Code Online (Sandbox Code Playgroud)

您需要在序列化程序中提及字段和相关字段