Model verilerini JSON'a serileştirmek için Django serializer kullanıyorum.
Örneğin: - Bir alan 'türleri' içeren bir modelim var (CHECKTYPE).
Artık 'types', 'test, test1, test2' gibi virgül (,) ayrılmış öğeleri içerir.Django serializörler - alanlar nitelik değerini ekle/güncelle
I (bir yere view.py olarak) gibi aşağıda Django seri hale kullanıyorum:
gettypes = CHECKTYPE.objects.all()
mytypes = serializers.serialize("json", gettypes)
return HttpResponse(mytypes, content_type="application/json")
Bu aşağıda gibi web sayfasında bana bir JSON verir:
[{"model": "porttype.CHECKTYPE", "pk": "xyz00000005", "fields": {"types": "test, test1, test2"}}]
Şimdi burada ben istiyorum Verileri serileştirmeden önce alanların niteliklerini manipüle edin.
Örneğin: 'tiplerini virgülle ayırırsam listenin son dizini olacak' lasttype 'alanlarına bir tane daha öznitelik eklemek istiyorum. Aşağıda gibi bu yapmaya çalıştık
[{"model": "porttype.CHECKTYPE", "pk": "xyz00000005", "fields": {"types": "test, test1, test2", "lasttype":"test2"}}]
ama işe yaramıyor:
lasttype = types.split(',')[-1]
böylece nihai json tepkisi gibi görünmelidir
gettypes = CHECKTYPE.objects.all()
updated_types = []
for mtype in gettypes:
mtype.lasttype = mtype.types.split(',')[-1]
updated_types.append(mtype)
mytypes = serializers.serialize("json", updated_types)
return HttpResponse(mytypes, content_type="application/json")
Ama bu olmuyor. Bana aynı JSON yanıtını veriyor ve 'lasttype' özelliğini göstermiyor. Bunu başarma olasılığı varsa lütfen bana bildirin.
sayesinde
Shashank'ın
teşekkürler. Bu benim sorunumu çözer (listeyi görüntülemek için JsonResponse'de güvenli = False eklemem gerekir). –
İsterseniz, cevabı kabul edilmiş olarak işaretleyebilirsiniz :) – v1k45