gpt4 book ai didi

python - 在 DRF 序列化程序字段中安全地允许 M2M 字段为空所需的最少选项是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 04:31:10 26 4
gpt4 key购买 nike

DRF 序列化器字段中有四个选项:requiredallow_emptyallow_nullallow_blank。要允许空的 M2M(多对多)字段,将 allow_empty 设置为 True 是否安全,或者是否需要其他选项也协调?另外,反之亦然需要什么?

djangorestframework==3.8.2

最佳答案

Django-rest-framework 文档说:

<b>allow_blank</b> - If set to <b>True</b> then the empty string should be considered a valid value. If set to <b>False</b> then the empty string is considered invalid and will raise a validation error. Defaults to <b>False</b>.

<b>allow_null</b>完全一样。但不鼓励使用 <b>allow_blank</b> . <b>allow_blank=True</b> 都设置有效和 <b>allow_null=True</b> ,但这样做意味着字符串表示形式将允许两种不同类型的空值,这可能会导致数据不一致和细微的应用程序错误。

<b>allow_blank</b>应该首选文本选择,并且 <b>allow_null</b>应首选数字或其他非文本选项。

<b>allow_empty</b>属性已添加自 django-rest-framework 3.2.x

<b>allow_empty</b><b>ListSerializer</b> 一起使用或 <b>many=True</b>关系。

来源: django-rest-framework docs

说到 <b>ManyToMany</b> 以外的领域像 CHarfield 或选择字段,使用 <b>allow_blank=True</b>隐含地表示该字段不是必需的。但是按照优先顺序 if <b>allow_blank=True</b>后面跟着一个 <b>required=True</b> , 那么该字段是必填项。

<b>allow_empty</b>明确与 ListSerializers 一起使用,以允许序列化程序接受空列表。默认情况下,这是 <b>True</b> .这也隐含地说:不需要。所以只添加 <b>allow_empty=True</b> 是安全的在<b>M2M</b>关系字段。

关于python - 在 DRF 序列化程序字段中安全地允许 M2M 字段为空所需的最少选项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52621599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com