Tengo un serializador como tal:
class DataSetColumnSerializer(serializers.ModelSerializer): custom_target = serializers.PrimaryKeyRelatedField(required=False) class Meta: model = dataset_models.DataSetColumn
Todavía:
ipdb> columns[0] {u'display_name': u'guid', u'name': u'guid', u'data_type': u'STRING', u'custom_target': None, u'ignore': False, u'is_identifier': False, u'order': 1} ipdb> serializer.is_valid() False ipdb> serializer.errors [{'custom_target': [u'This field cannot be blank.']}, {'custom_target': [u'This field cannot be blank.']}, {'custom_target': [u'This field cannot be blank.']}, {'custom_target': [u'This field cannot be blank.']}, {'custom_target': [u'This field cannot be blank.']}, {'custom_target': [u'This field cannot be blank.']}, {'custom_target': [u'This field cannot be blank.']}, {'custom_target': [u'This field cannot be blank.']}] ipdb> serializer.fields['custom_target'].required False
¿Que esta pasando?
De los documentos:
Nota: cuando la validación se aplica a un ModelSerializer, tanto los campos del serializador como los campos correspondientes del modelo deben validarse correctamente. Si tiene campos opcionales en su modelo, asegúrese de configurar correctamente blank = True en el campo del modelo, así como la configuración requerida = False en el campo del serializador.
enlace a documentos