3

我已经为嵌入文档中的字段设置了默认值,但是当我尝试发布数据时,它不接受 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

我在这里做错了什么吗?

4

1 回答 1

0
    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 不允许字符串为空值和空白值。需要明确提及它们。施加在模型上的界限在序列化器内部不成立。

上述更改应该可以帮助您按照您的要求维护验证。

于 2017-02-17T06:52:08.980 回答