我有一個角度應用程序,它提供了一個帶有聯繫人數據和聯繫人列表的表單。每個聯繫人可以有N個號碼,每個號碼都有一個類型(單元格,家庭,工作...)下面的代碼將JSON發送到角度應用程序就好了,我可以在那裏處理它,包括添加新的數字,刪除數字.....但是,當DRF獲得完全相同的格式JSON回來,它不能反序列化它。它拋出了這個錯誤:如何製作Django Rest Framework序列化程序雙向
AttributeError: 'Contact' object has no attribute 'numbers'
這是完全有效的,但串行是否有該領域,應該能夠掛到這些值,所以我可以將它們保存在我保存聯繫人。
如果我做了什麼完全做作這樣的更新方法:
self.object = self.get_object_or_none()
self.object.numbers = []
我可以消除這個錯誤,但隨後拋出了這些類型的錯誤:
{'numbers': [
{u'non_field_errors': [u'Cannot create a new item, only existing items may be updated.']},
{u'non_field_errors': [u'Cannot create a new item, only existing items may be updated.']},
{u'non_field_errors': [u'Cannot create a new item, only existing items may be updated.']}
]}
前兩個電話號碼不是新的,他們有ID字段,來自數據庫,第三個是新的,我試圖添加它。
這是代碼。當然,這並不是奇怪的做事的方式。 Django Rest框架我應該用什麼?我不斷遇到像這樣的表演停止者,這似乎是記錄的做事方式,但隨後他們驚人地爆炸。
class PhoneTypeSerializer(serializers.ModelSerializer):
class Meta:
model = PhoneType
class ContactPhoneSerializer(serializers.ModelSerializer):
number_type = PhoneTypeSerializer(source='number_type')
class Meta:
model = ContactPhone
depth = 1
exclude = ('owner',)
class ContactSerializer(serializers.ModelSerializer):
numbers = ContactPhoneSerializer(source='number_set', many=True, required=False)
class Meta:
model = Contact
如何反序列化這些數據以便我可以保存它?
你可以用發佈的數據顯示示例請求嗎? – mariodev