2016-04-04 4 views
4

Я использую структуру Django REST с Mongoengine. Когда я пытаюсь выполнить сериализацию необязательного поля во встроенном документе, среда по-прежнему требует поля и возвращает сообщение об ошибке, что поле не может быть пустым. Как сделать поля необязательными для EmbeddedDocument? Он отлично подходит для стандартных объектов модели Document, а не для объектов EmbeddedDocument.Вложенное поле документа никогда не является обязательным в Django Mongoengine REST framework

Моя модель:

class Event(EmbeddedDocument): 
    id = ObjectIdField(required=True, default=ObjectId()) 
    status = StringField(required=True, max_length=50) 
    note = StringField(required=False, max_length=2000) 
    created = DateTimeField(required=True, default=timezone.now()) 

Мой сериализатору:

class EventSerializer(EmbeddedDocumentSerializer): 

    class Meta: 
     model = Event 
     depth = 2 

    def validate(self, data): 
     return data 

Обратите внимание, что в поле "примечание" установлен в required=False. Однако, когда я сериализую документ, я все еще получаю сообщение об ошибке, что поле не может быть пустым. Спасибо!

ответ

0

Я столкнулся с той же проблемой, я думаю, что вы можете пометить поля как blank=True, и это должно позволить вам ничего не поместить в эти поля.