2

埋め込みドキュメントのフィールドのデフォルト値を設定しましたが、データをポストしようとすると、[なし]または[ブランク]の値を受け入れません。ここでMongoEngine:埋め込みドキュメントのフィールドは、デフォルト値をnoneにしませんか?

私のコードは

models.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) 

serializers.py

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

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

like-に見えるもの、私はここでやっている何か問題がありますか?

+0

あなたはどのバージョンのmongoengine、DRF-mongoengine、DRFを使用していますか? –

+0

DRFは3.3.3、mongoengineは0.10.6、DRF-mongoengineも最新です。 – Sanchit

+0

['allow_null = True'](http://www.django-rest-framework.org/api-guide/fields/#allow_null)を試しましたか? – Anass

答えて

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は、文字列のヌルと空白の値を許可しません。彼らは明示的に言及する必要があります。モデルに課された境界は、シリアライザ内に保持されません。

上記の変更は、必要に応じて検証を維持するのに役立ちます。

関連する問題