Ich verwende Django Serializer für die Serialisierung der Modelldaten in JSON.
Zum Beispiel: - Ich habe ein Modell (CHECKTYPE), das ein Feld "Typen" enthält.
Jetzt "Typen" enthält Komma (,) getrennte Elemente wie "test, test1, test2".Django Serializer - Felder Attributwert hinzufügen/aktualisieren
Ich verwende Django Serializer wie unten (irgendwo in view.py):
gettypes = CHECKTYPE.objects.all()
mytypes = serializers.serialize("json", gettypes)
return HttpResponse(mytypes, content_type="application/json")
Das gibt mir eine JSON auf Web-Seite wie unten:
[{"model": "porttype.CHECKTYPE", "pk": "xyz00000005", "fields": {"types": "test, test1, test2"}}]
Hier möchte ich manipulieren Sie die Feldattribute, bevor Sie die Daten serialisieren.
Zum Beispiel: Ich möchte ein weiteres Attribut in den Feldern 'lasttype' hinzufügen, das der letzte Index der Liste sein wird, wenn ich die 'Typen' durch Komma spalte.
lasttype = types.split(',')[-1]
so final json Antwort sollte wie folgt aussehen:
[{"model": "porttype.CHECKTYPE", "pk": "xyz00000005", "fields": {"types": "test, test1, test2", "lasttype":"test2"}}]
Ich habe versucht, dies wie unten zu tun, aber es funktioniert nicht:
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")
Aber das funktioniert nicht. Es gibt mir dieselbe JSON-Antwort und zeigt nicht das Attribut 'lasttype' an. Bitte lassen Sie mich wissen, ob es eine Möglichkeit gibt, dies zu erreichen.
Danke,
Shashank
Dank. Dies behebt mein Problem (ich muss safe = False in JsonResponse für die Anzeige der Liste hinzufügen). –
Sie können die Antwort als akzeptiert markieren, wenn Sie wollen :) – v1k45