2017-03-24 5 views
1

Ich möchte ein JSON-Objekt, das in einem JSONFELD in Django ist, aktualisieren, habe ich ein Problem beim Aktualisieren der Daten.Update Daten in einem JsonField Django

Mein Modell sieht wie folgt aus https://codeshare.io/Gbeonj

Meine json wie diese https://codeshare.io/5obDPX

sieht so basicly die json hat falsche Daten, anstelle von "Personalausweises" es "NATIONAL ID" hat so will ich um dieses Json-Objekt zu aktualisieren, um die richtigen Daten zu haben. hier ist das, was ich reden soll

über
"info": { 
     "mobilePhone": "", 
     "firstName": "david", 
     "tags": [], 
     "middleName": "mirale", 
     "gender": "Male", 
     "documentType": "NATIONAL ID", 
     "beneficiary": false, 
     "dateOfBirth": "1995-03-04T08:01:42.165Z", 
     "documentNumber": "519011016721", 
     "dateOfBirthExact": false, 
     "role": "Child", 
     "lastName": "ABSURG0058", 
     "recipient": "Alternate", 
     "homePhone": "" 
     }, 

die "documentType": "NATIONAL ID", „NATIONAL ID-Karte“ seine

i das folgende Skript bin mit dem JSON-Objekt in dem Server zu aktualisieren.

Das Problem ist, dass dieses Objekt nicht aktualisiert wurde, was mache ich falsch?

Antwort

1

Sobald Sie validiert die doc_type_value Sie nicht wieder in die upload Objekt einstellen, müssen Sie die upload Objekt aktualisieren:

for upload in uploads: 
    data = upload.data 
    updated_members = [] 
    for member in data['members']: 
     try: 
      doc_type_value = member['info'].get('documentType') 
     except KeyError: 
      pass 
     else: 
      if doc_type_value == 'NATIONAL ID': 
       doc_type_value = 'NATIONAL ID Card' 
       member['info']['documentType'] = doc_type_value 
     updated_members.append(member) 

    data['members'] = updated_members 
    upload.data = data 
    upload.save() 
+0

dank es funktionierte :) @aamir –

Verwandte Themen