python - MongoEngine:Embeddeddocument 字段不将默认值设置为 none?

标签 python django django-rest-framework mongoengine django-mongodb-engine

我已经为嵌入式文档中的字段设置了默认值,但是当我尝试发布数据时,它不接受 None 或 Blank 值。

这是我的代码的样子-

模型.py

class MetaData(EmbeddedDocument):
    adcode = StringField(max_length=50, default="", blank=True, Null=True)
    additional_html_below_header = StringField(max_length=50, default="")
    adhoc_plus_disable_pacing = BooleanField(default=False)
    adhoc_plus_has_priority = BooleanField(default=False)
    adhoc_server = StringField(max_length=50, default="")
class LandingPage(Document):
    type = StringField(max_length=50, default="")
    meta_clean_URL_tag = StringField(max_length=50, default="")
    meta_name =  StringField(max_length=50, default="")
    created_time = DateTimeField(default=datetime.datetime.now)
    new = BooleanField(default=False)
    meta_data = EmbeddedDocumentField(MetaData)

序列化器.py

class MetaDataSerializer(serializers.EmbeddedDocumentSerializer):
    class Meta:
        model = MetaData

class LandingPageSerializer(serializers.DocumentSerializer):
    meta_data = MetaDataSerializer()
    class Meta:
        model = LandingPage

我在这里做错了什么吗?

最佳答案

    class MetaDataSerializer(serializers.EmbeddedDocumentSerializer):
        adcode = serializers.CharField(allow_blank=True,allow_null=True)
        adhoc_server = serializes.CharField(allow_blank=True,allow_null=True)
        additional_html_below_header = serializers.CharField(allow_blank=True,allow_null=True)

        class Meta:
            model = MetaData

DRF-mongoengine 或 DRF 不允许字符串为 null 和空白值。需要明确提及它们。强加于模型的边界不包含在序列化程序中。

上述更改应该可以帮助您维护所需的验证。

关于python - MongoEngine:Embeddeddocument 字段不将默认值设置为 none?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38042314/

相关文章:

python - 如何在 Django REST Framework 中创建多个模型实例而无需重复的可写嵌套序列化程序?

python - 如何修复 "Could not find a version that satisfies the requirement install (from versions: ) No matching distribution found for install "错误

python - 如何在命令行导入和运行django函数

python - Google App Engine 上的 Facebook 注册

django - sorl缩略图和缓存问题

python - MySQL-python 未安装在 virtualenv 中(环境错误 : mysql_config not found)

reactjs - Django, Djoser 社交身份验证 : State could not be found in server-side session data. status_code 400

python - 使用 ChoiceField 时类型错误对象不可 JSON 序列化

python - 在 AWS 上从 s3 读取文件到 sagemaker 会出现 403 禁止错误,但其他操作可以处理该文件

python - 有条件地移动饼图中单个数据标签的位置