问题标签 [django-serializer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5115 浏览

python - 数据库优先的 Django 模型

在 ASP.NET 中有实体框架或称为“数据库优先”的东西,其中实体是从现有数据库生成的。Django有类似的东西吗?

我通常使用需要为其创建后端(以及随后的前端)的预先存在的数据库。其中一些关系数据库有很多表和关系,因此手动编写模型不是一个好主意。我已经在谷歌上搜索了解决方案,但结果却是空手而归。

0 投票
2 回答
2469 浏览

django - DjangoRestFramework ModelSerializer:字段级验证不起作用

这是我的 serializers.py(我想为内置的 User 模型创建一个序列化程序):

问题是,当我尝试使用已经存在的用户名创建用户时,它返回以下字典:

而不是说

我为此重新创建了 validate_username 函数(用于测试目的):

它不会引发错误。知道为什么 DjangoRestFramework 会忽略 validate_username 函数吗?

编辑:请注意,我使用的是 ModelSerializer(在此处的教程中:http: //www.django-rest-framework.org/api-guide/serializers/#validation它仅讨论了序列化器的字段级验证,而不是一个模型序列化器)。注意确定它是否有所作为。

0 投票
2 回答
5871 浏览

django - Django Rest Framework - 如何为所有 ModelSerializer 字段创建自定义错误消息?

这是我的 serializers.py(我想为内置的 User 模型创建一个序列化程序):

我知道 Django Rest Framework 有它自己的字段验证器,因为当我尝试使用已经存在的用户名创建用户时,它会引发错误提示:

我想自定义错误消息并使其显示“此用户名已被占用。请重试”而不是“此字段必须是唯一的”。

它还有一个内置的正则表达式验证器,因为当我创建一个带有感叹号的用户名时,它会说:

我想自定义正则表达式验证器,使其只显示“无效的用户名”。

如何自定义每个字段具有的所有错误消息?

注意:根据这篇文章:Django Rest Framework 序列化程序中的自定义错误消息我可以做:

但是对于“唯一”和“正则表达式”验证器,我该怎么办?我试着做

但都没有奏效。

0 投票
1 回答
219 浏览

python - Django - 带有 model_set 的 ModelSerializer

我有 2 个模型,一个是 Order Header,另一个是 Orden 详细信息,我想检索一个包含 Order Header 及其内部详细信息的 JSON。我已经看到了model__set检索所有标头的相关外部详细信息的“”函数,但我不知道如何制作像上述结构的 JSON。

我的模型.py

我需要收到类似的东西:

我该如何编写序列化程序或查询json.dumps呢?

0 投票
1 回答
13910 浏览

django - Django Rest Framework PUT 对唯一模型字段的请求

我有以下型号

我有以下序列化程序

我定义了以下 API 视图:

现有设备上的 PUT 请求

还给我

但是我正在更新记录并传递它具有的相同 UDID。所以我没有在 DB 中得到重复,但 DRF 认为是另一种方式。

我需要实现的是

  • 如果同一记录的 UDID 未更改 - 则不应引发错误
  • 如果记录的 UDID 发生变化,现在它与某些记录的 UDID 相同,则应返回错误。
0 投票
1 回答
558 浏览

django - 如何通过外键 Django 序列化多对多?

我通过外键具有多对多的模型“B”:

我可以通过外键(BD)获得关系,但我无法在我的 ajax.py 中获得多对多(BA)的关系:

例如,可能通过 values() 以另一种方式存在。但我对转储列表有问题 - “不是 JSON 可序列化的”:

0 投票
2 回答
4596 浏览

django - 将具有相关对象的模型对象序列化为 JSON

我有一个Person模型来存储人员详细信息。

我也有模型PersonLogs来存储人的活动日志。

我正在使用 Django Serializer 将 Person 对象返回为 JSON 格式作为响应。

输出 :

现在我想返回PersonLogs响应 JSON。

预期输出:

我查看了官方文档,但没有得到任何帮助。关联

0 投票
1 回答
1132 浏览

django - DjangoRestFramework 序列化程序无法识别“用户名”属性,即使它存在

这是我的serializers.py:

这是我的 mixins.py:

当我转到 URL /users/1 时,这就是所谓的视图:

问题是,当我转到 URL /users/1 时,Django 返回一个属性错误,说:

我检查了我的 UserSerializer 并且我确实正确指定了

所以我似乎找不到问题。Response知道为什么 Django 会给出错误提示“序列化程序字段可能命名不正确,并且与实例上的任何属性或键都不匹配”。即使“用户名”命名正确?

0 投票
1 回答
372 浏览

python - Django-rest 框架结构未捕获 post 或 put 请求

我正在使用 django-rest-framework 制作JSON-API。目前 API 适用于 GET 和 DELETE 请求,但不适用于 POST 和 PUT 请求。不知何故,post 或 put 参数没有被捕获。这是我的序列化程序和我的观点。

序列化程序.py

视图.py

当我使用已发布的参数发出 http 请求 - http://127.0.0.1:8000/snippet/ , { 'code' : 'testtest'} 时,api 创建了一个没有已发布参数的新片段实例。同样,当我向http://127.0.0.1:8000/snippet/1发出 PUT 请求时,数据不会使用 put 参数进行更新。

我在这里错过了什么吗?

0 投票
2 回答
1112 浏览

python - 带有 Django Rest 的 JSON API - “包含”属性

我正在使用 Django-rest 框架创建JSON-API 。我可以按照 JSON-API 文档指定的相同方式构造返回的 JSON 对象,但“包含”属性除外。有没有办法包含相关模型的多个序列化对象?

例如

如果我有两个模型类

我有这两个模型的序列化器:

我有用户序列化器

这些代码并没有给我我需要的东西。

目标是,如果请求的 url 包含查询“包含”,则 API 将返回一个 JSON 对象,其中包含与“包含”属性下的用户对象相关的 CommentSerialized 和 SnippetSerialized 对象。结果应该是这样的。

如果有人可以在这里帮助我,那就太好了。谢谢!