【问题标题】:Swagger prints only string datatype in Django Rest Framework using DefaultRouterSwagger 使用 DefaultRouter 在 Django Rest Framework 中仅打印字符串数据类型
【发布时间】:2019-07-10 12:14:17
【问题描述】:

我正在努力生成文档(或者简单地说 - 整个项目)。我对 Django 和 Python 并不陌生,所以也许我的问题很简单。

我在 Django Rest Framework 项目中有一堆定义明确的模型,为了与它们一起工作,我使用的是 DefaultRouters - 该项目现在开始并且处于开发的早期阶段。但是,为了列出所有操作,我已经设法安装 Swagger 并运行它。我的问题是,在所有动作中,几乎所有参数中的 Swagger 都会打印“字符串”数据类型。例如:

型号

class UseCaseVer(models.Model):
    id = models.IntegerField(primary_key=True),
    version_key = models.CharField(max_length=10,null=False,unique=True)
    approv_date = models.DateField(default=timezone.now,null=False)
    description = models.TextField()

    class Meta:
        abstract = False

序列化器:

class UseCaseVerSerializer(serializers.ModelSerializer):
date_joined = serializers.DateTimeField()

class Meta(object):
    model = UseCaseVer
    fields = ('id', 'version_key', 'approv_date', 'description')

仍然给我所有领域的字符串。怎么了?

【问题讨论】:

  • “几乎所有参数” - 除了 id 之外的所有参数?
  • 是的,你是对的。

标签: python django django-rest-framework django-serializer


【解决方案1】:

没有错。它给你json。例如在python中,要获取实际值,需要使用json.loads()

【讨论】:

  • 确实如此,现在已经测试过了,但是有什么办法可以强制 Swagger 打印正确的数据类型?
  • 简而言之 - 没有。 JSON是通过http传输不同数据结构的常用方式。也许,Swagger 中有一些扩展来解析 json。但无论如何,你将不得不解析它
  • 好吧,你让我冷静了 :) 谢谢哥们
猜你喜欢
  • 1970-01-01
  • 2019-09-28
  • 2017-02-21
  • 1970-01-01
  • 1970-01-01
  • 2020-06-24
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
相关资源
最近更新 更多