apollo13 hat geschrieben:Woher kommen die Daten?
Die Daten kommen von der SOAP Schnittstelle (es geht um Adressen aus einer Kunden-DB) in UTF-8 codiert und werden direkt in ein Form-Set übergeben:
Code: Alles auswählen
#----------------------------------------------------------------------
@csrf_protect
@login_required
def kedit(request):
""""""
# Daten per SOAP abrufen
gsCustomer = settings.GS_API_CLIENT.service.getCustomer(
settings.SECRET_KEY,
int(request.user.username)
)
data = {
'company':gsCustomer.result.company,
'typ':gsCustomer.result.typ,
'address':gsCustomer.result.address,
'plz':gsCustomer.result.zip,
'city':gsCustomer.result.city,
'country':gsCustomer.result.country,
}
form = myform.KdataEditForm(data)
return render_to_response(
'mydata/kdata_edit.html',
{
'form':form,
'customer':gsCustomer,
},
context_instance=RequestContext(request)
)
hier können die Daten editiert werden und gehen danach durch die Preview Funktion von Django.
Und werden dann wieder per SOAP zurück an die DB übergeben.
Code: Alles auswählen
########################################################################
class KundendatenEditPreview(FormPreview):
""""""
preview_template = 'mydata/kundendaten_edit_preview.html'
form_template = 'mydata/kundendaten_edit.html'
#----------------------------------------------------------------------
def done(self, request, cleaned_data):
""""""
gsCreateUpdateCustomer.company = cleaned_data['company']
gsCreateUpdateCustomer.address = cleaned_data['address']
gsCreateUpdateCustomer.zip = cleaned_data['plz']
gsCreateUpdateCustomer.city = cleaned_data['city']
gsUpdateCustomer = settings.GS_API_CLIENT.service.updateCustomer(
settings.SECRET_KEY,
int(request.user.username),
gsCreateUpdateCustomer,
)
return HttpResponseRedirect('/mydata/kundendaten')
Wie schon geschrieben sind die Daten im Preview noch korrekt und erst nach dem absenden über Suds werden die Daten geändert.
Ich bin mir inzwischen nicht mehr ganz sicher, aber wenn ich Daten von cleaned_data bekomme sollten diese doch schon per UTF-8 Codiert sein, richtig?
Gruß
Damaskus