Şu an birkaç saattir bakıyorum ve çözümü bulamıyorum. Sadece anlamadım.Tamamen Kaybedildi: Çok Sayıda Çok Sayıda Serializer ve Güncelleme Django Rest Framework
Pek çok çocuğu olan bir ebeveynim var. Ebeveynlerinin tüm çocuklarını almama izin veren bir manzara yarattım. Şimdi bu listeyi sonlandırmak ve yeni çocuk listesiyle ebeveyne PATCH yapmak istiyorum. Özel bir update
yöntemini yazmam gerektiğini anlıyorum, ancak bu işi nasıl yapacağımı anlayamıyorum.
class ParentSerializer(serializers.HyperlinkedModelSerializer):
children = ChildSerializer(many=True)
class Meta:
model = models.Parent
fields = ('id', 'url', 'name', 'children',)
def update(self, instance, validated_data):
submitted_children = validated_data.get('children')
if submitted_children:
for child in submitted_children:
child_instance = Child.objects.get(id=child.id)
instance.children.add(child_instance)
instance.save()
return instance
olduğunu ne olması gerektiğinin Benim anlayış ...
- alın gönderilen çocukların
validated_data.pop('children')
: Burada
benim Veli serileştiricisi var: Burada benim Çocuk serileştiricisi varclass ChildSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = models.Child fields = ('id', 'url', 'name',)
- T ile döngü etek ve parent.children her biri pek çok
- Kaydet ebeveyn modeli
eklemek Herhalde burada bir düzine farklı fikirleri denedim ama bu işe almak gibi olamaz. Yukarıdaki kod, children_set değerini değiştirmiyor.
Herhangi bir öneri çok hoş geldiniz.
Başvuru için, ben şu inceledim:
http://www.django-rest-framework.org/api-guide/serializers/#saving-instances
http://www.django-rest-framework.org/api-guide/serializers/#writable-nested-representations
http://www.django-rest-framework.org/api-guide/serializers/#validation
django rest framework many to many json write
Ve daha bir sürü ama doğru bunları hatırlamıyorum şimdi
GÜNCELLEME:
[{ "id": 2, "url": "http://127.0.0.1:8000/api/v1/children/2", "FIRST_NAME": "Tom", "last_name": "Jones", "date_of_birth" : "1969-03 -14 "}]
'submit_children' beklenen değerleri içeriyor mu? JSON'da – ilse2005
? Evet. –
Güncelleme yönteminde demek istiyorum. Yazdırdın mı? – ilse2005