我正在使用Django Rest Framework开发一个API Rest,供AngularJS应用程序使用。我有一些属性为SelectMultipleField
的模型,但是当我尝试使用我的API通过JSON更新这些字段时,我遇到了问题。
当我从服务器获取数据时,我收到了一个字符串数组,但是当我将更新的数据发送回具有相同格式的服务器时,我收到错误:{{ 1}}。我也尝试将数据解析为用逗号分割的字符串,但它也不起作用......任何关于我做错的想法?
型号:
"This isn't a valid option"
串行器:
class Hueco(models.Model):
class ProteccionType(DjangoChoices):
Ninguno = ChoiceItem(label=u'Ninguno', value='ninguno')
Retranqueo = ChoiceItem(label=u'Retranqueo', value='retranqueo')
Voladizo = ChoiceItem(label=u'Voladizo', value='voladizo')
Lateral_izquierdo = ChoiceItem(label=u'Lateral Izquierdo', value='lateral_izquierdo')
Lateral_derecho = ChoiceItem(label=u'Lateral Derecho', value='lateral_derecho')
Toldo = ChoiceItem(label=u'Toldo', value='toldo')
Lamas_verticales = ChoiceItem(label=u'Lamas Verticales', value='lamas_verticales')
Lamas_horizontales = ChoiceItem(label=u'Lamas Horizontales', value='lamas_horizontales')
Laminas = ChoiceItem(label=u'Láminas', value='laminas')
Cortinas = ChoiceItem(label=u'Cortinas', value='cortinas')
tipo_proteccion = SelectMultipleField(
max_length=150,
choices=ProteccionType.choices,
default=ProteccionType.Ninguno
)
因此,我从服务器获取的JSON示例可能是:
class HuecoSerializer(serializers.ModelSerializer):
class Meta:
model = Hueco
fields = ('id', 'tipo_proteccion' )
如果我尝试用这个更新数据,我会收到错误:
[
"id": 1,
"tipo_proteccion": [
"ninguno"
]
]
但如果我这样发送它就可以了。
[
"id": 1,
"tipo_proteccion": [
"cortinas",
"voladizo"
]
]
所以我的问题是如何发送多个选择。我认为这是因为我需要改变我序列化它的方式,但不确定......