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 

내가 여기서하고있어 잘못된 있나요 삼았 보이는 무엇인가?

+0

mongoengine, DRF-mongoengine 및 DRF는 어떤 버전을 사용하고 있습니까? –

+0

DRF는 3.3.3, 몽고 겐은 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는 문자열에 null 값과 공백 값을 허용하지 않습니다. 그들은 명시 적으로 언급 될 필요가있다. 모델에 부과 된 경계는 시리얼 라이저 내부에 있지 않습니다.

상기 변경 사항은 귀하가 필요에 따라 유효성을 유지하는 데 도움이됩니다.