问题标签 [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 回答
2582 浏览

django - 如何更改 DjangoRestFramework 序列化程序的“此字段是必需的”错误消息?

当用户通过 JSON 用户对象向后端提交表单时,这是处理它的视图:

我的问题是,如果用户没有填写表单中的某个字段,DRF 发送到前端的错误消息是“此字段是必需的”。有没有办法让我改变它,以便对于所有字段,错误消息是“需要 { fieldname }。”?

这是我的serializers.py:

这是 SetCustomErrorMessageMixin:

最后,这是我的 models.py(UserExtended 模型):

0 投票
2 回答
1775 浏览

django - DjangoRestFramework - 如何使用模型序列化程序访问 OneToOneField 反向关系的其他字段?

我正在使用默认的 User 模型,并且还使用 UserExtended 模型对其进行扩展:

我正在尝试遵循此处记录的内容:http: //www.django-rest-framework.org/api-guide/relations/#reverse-relations

这是我的用户序列化器:

我的问题是,如果最终用户在提交表单之前没有填写表单的“国家”部分,Django 会向前端发送一条错误消息,提示“输入有效的用户扩展”。“userextended”是反向关系的名称,每个用户对象都链接到一个用户扩展对象,反之亦然。“userextended”是强制性的,但最终用户在创建用户对象时不必指定“userextended”字段,因为这已经是给定的(最终用户创建用户对象的那一刻,用户对象将具有反向关系默认情况下使用 UserExtended 对象)。

最终用户必须填写表格中的“国家”部分,因为国家是最终用户所需要的。话虽如此,我如何让 Django 说“输入一个有效的国家”而不是“输入一个有效的用户扩展”?

如果最终用户成功保存了一个用户对象,并在表单的“国家”部分提交了“加拿大”,那么 DRF 怎么知道将“加拿大”保存为国家?因为目前,DRF 似乎认为表单中的“国家”部分是指“用户扩展”反向关系字段。

我期望的是,在用户序列化程序的“字段”数组中,我使用点表示法?像这样的东西?:

编辑:我也刚刚创建了一个 UserExtended 序列化程序,如下所示:

但我不知道如何将这个序列化器与原始的 UserSerializer “合并”。

0 投票
1 回答
495 浏览

django - DjangoRestFramework 忽略自定义错误消息

这是我的 UserExtendedSerializer:

这是我的models.py:

我的问题是,当用户提交无效类型(Django 需要一个整数/pk 值,但假设用户提交字符串“a”)时,Django 会向前端发送一个错误,说“类型不正确。预期的 pk 值,已收到列表。” 即使我覆盖了序列化程序中的“无效”错误消息。为什么发送到前端的错误信息不是“Select a valid country”而是“Incorrect type. Expected pk value, received list”。反而?

0 投票
1 回答
1243 浏览

python - Django Rest Serializer 通过外键获取相关数据

我有以下模型骨架:

我想为 A 编写一个序列化程序,它应该name从与 B 相关的模型 C返回。

这里的关系就像 A->B->C 现在使用 A 的序列化程序我希望从 C 中获取数据

我想通过 A 访问 C,即从 B 获取 profile_photo 并从 C 获取 profile_photo 的名称

我滚动浏览了这里给出的相关字段Django Rest 关系,但无法实现我想要的。

他们有什么方法可以实现吗。

除了模型骨架中提到的字段之外,还有很多字段,我不想获取这些字段。

编辑:我需要的最终结果是来自 A 和来自模型 Cuser_id的特定结果post_idname

0 投票
1 回答
815 浏览

django - Django / DRF - 如何查看模型/模型序列化器字段的所有验证器列表?

这是我的 UserExtendedSerializer:

这是 UserExtended 模型:

现在,当我尝试在不输入有效国家/地区的情况下创建用户时,Django 会向前端提示“类型不正确。预期的 pk 值,接收列表”。此错误消息来自哪里?因为在我的 init 函数中,我将“无效”错误消息覆盖为“选择一个有效的国家。”,但这不是我收到的消息。

另外,我打开了外壳并做了

输出是:

所以这里也没有列出 Django 验证器。如何查看特定模型/模型序列化器字段的所有验证器?

0 投票
1 回答
7964 浏览

django - DjangoRestFramework - 如何检查 valied_data 中是否存在可选的序列化程序字段?

我的模型是这样的:

这是我的序列化器:

此时,我想检查最终用户是否提供了“主题”,如果是,则添加该字段然后保存帖子对象(否则,保存帖子对象而不添加“主题”字段)。我打开了 python shell 并这样做了:

这会返回一个错误说:

话虽如此,检查验证字段是否存在的正确方法是什么?

0 投票
2 回答
622 浏览

serialization - Django Rest 框架通过 Views.py 显示序列化数据

我有一个以这种方式设置的序列化程序,我希望使用 views.py 显示 serialized.data (这将是一个像这样的字典: { "version": xx, and "country_list": [ ] } )

我的views.py是这样设置的:

我在这个 CountryListView 中编写什么代码来呈现像上面这样的字典?我真的不确定。

0 投票
1 回答
20 浏览

django - 被嵌套序列化程序调用时从自定义序列化程序访问数据

我有一个调用其他序列化程序的序列化程序,而另一个序列化程序是一个自定义序列化程序,它覆盖了 .to_representation() 行为。如果我无法访问从视图发送到第一个序列化程序的数据,我应该如何从第一个序列化程序调用这个自定义序列化程序?

这是情况的一个简单示例:

0 投票
1 回答
102 浏览

python - Django超级函数不会向类添加变量

我正在尝试使用init在 MozSerializer 类中创建新变量以获取从另一个函数传递的数据。这是代码:

我的目标是将这个“modelid”从另一个函数传递给序列化程序(第 7 行 ...queryset=MODELID ...)。

0 投票
10 回答
110273 浏览

python - Django rest框架序列化多对多字段

如何将多对多字段序列化为列表,并通过 rest 框架返回它们?在下面的示例中,我尝试将帖子连同与之关联的标签列表一起返回。

模型.py

序列化程序.py

视图.py