问题标签 [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.
python - Django rest 框架序列化程序返回一个列表而不是 json
我有以下标签并以多对多关系发布对象。我尝试在后序列化程序中返回的是返回列表中的标签(仅使用 Tag.name)而不是 json,这样做的干净方法是什么?
序列化程序.py
目前,PostSerializer 返回带有所有字段的 json 格式的标签,我只希望它在字符串列表中返回标签:['tag1', 'tag2', 'tag3']。
django - 自定义 ModelSerializer 错误消息被忽略
这是我的 UserSerializer(我使用的是默认的 Django User 模型):
问题是,当用户输入的用户名太长时,错误消息是
此错误消息来自哪里?我覆盖了上面代码中的“max_length”错误消息,但它没有显示出来。当我从我的 UserSerialzer 中删除这一行时:
那么错误信息是:
这是有道理的,因为它来自 CharField DRF 源代码:https ://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/fields.py
但是“用户名太长”在哪里。来自以及为什么它没有说“用户名不能超过 {max_length} 个字符。” 反而?
django - 使用 factory_boy 测试 django 帖子
我刚开始在测试中使用Factory boy,效果很好。
我想测试 crud 视图,所以在某些时候,我需要发布数据(以 json 格式)以进行创建和更新操作。
我希望我的测试内容类似于:
这显然不起作用。我明白<factory.containers.StubObject object at 0x7ffa34e375d0> is not JSON serializable
了有什么办法吗?还是我需要自己填写所有帖子数据?(我没有测试表单本身或验证,只是发布响应。
干杯
arrays - 序列化几个对象 - json 表示 - 使用数组而不是列表表示
我正在使用 Django Rest 框架来构建服务器部分。我有以下型号:
这是我使用嵌套关系的序列化程序(这里):
而我的观点:
最后我有这样的JSON:
但我想拥有
可能吗?你可以帮帮我吗?
先感谢您!
python - How to properly get a serializer instance in Django view?
I'm trying to get an instance of a serializer in my overwritten list method and then pass it in through perform_create. Basically what this code does is it checks if the queryset is empty and if it is, we do a perform_create
. The problem is that I'm trying to get an instance of the serializer so I can pass it in to the perform_create
method. I don't believe the line serializer = self.get_serializer(data=request.data)
correctly grabs the serializer as it shows nothing when I try to log it. Any help is appreciated, thanks.
django - 搜索视图/序列化器 - Django Rest 框架
有没有办法在我的 DRF API 中实现搜索视图?例如,我在我的网站上使用以下代码来允许用户在搜索栏中输入关键字并返回结果。
有没有办法在 DRF 中执行此操作以用于我的 API?
先感谢您!
django - 如何在 Django Rest Framework(DRF) 中为 ModelSerializers 编写自定义字段验证,类似于 Django 中的表单验证?
我目前正在创建一个基于 DRF 的 api。我有一个模型,如下所示:
该模型的相应序列化器为:
现在我的问题是我想在获取数据的同时验证模型的“名称”字段。例如,我可能会通过类似于 Django 表单的 Python 代码来检查用户的名字或名字:
我知道 Serializers.serializer 类中有一个叫做 'validate_(fieldname)' 的东西。但我希望在 Serializers.ModelSerializer 中使用它。(类似于 Django 中的自定义表单验证)
django - 具有中间表的多对多关系的django嵌套序列化
我看过很多关于如何反序列化和序列化具有多对多关系的表的嵌套关系的帖子,但是当在多对多关系中使用中间表时,我无法实现反序列化。
这是因为中间表需要两个外键,一个来自参与关系的两个表。
我有一个Order模型和一个Service模型,它们通过OrderItem中间表处于多对多关系中。
我需要像这样传递一个 JSON 请求:
“service_time”和“address”元素保存在Order表中。现在问题出现在“items”JSON 数组上。我将“service_id”(Service表的外键)传递给我,我也需要将“order”(Order 表的外键)传递给它,因为它是一个必填字段。问题是在发送请求时Order表的主键是未知的(因为 Order 也是作为同一请求的一部分创建的)。在这种情况下如何实现反序列化?
我尝试过这样的事情,但没有成功。
我收到一条错误消息,说'Service' 对象没有属性 'order'。
我知道服务模型没有“订单”属性,但我正在创建一个OrderItem对象,而不是一个服务对象。
任何建议都会有所帮助!
编辑:添加使用的模型
Edit2:添加了其他相关的序列化程序。
我忘记提到的一件重要的事情是,数据保存在数据库中,但仍然引发异常。
django - 在 DRF 中为外键字段创建不同的名称
在使用序列化程序创建对象时,我想为外键字段使用不同的名称。假设我有一个A
带有外键字段b
的模型来建模B
。我该怎么做?
我有不同的序列化程序用于创建和获取详细信息。在获取详细信息时,我使用嵌套序列化程序来获取详细信息,B
这就是为什么我想b_id
在仅指定 id 和b
从中获取数据时使用字段B
编辑:
我试过了
但它给出了以下错误: