Je travaille avec un ModelForm et transmets des données qui ont été stockées dans la base de données en utilisant un MultiValueDict qui contient les données d'origine, sous la forme u'first_name': [u'XX'], u'last_name': [u'']
et autres, mais le formulaire rend la valeur complètement à le champ réel, y compris [u'']
enveloppant le reste.Passage de MultiValueDict à Django ModelForm
Si j'essaie de transmettre le même MultiValueDict à un formulaire normal, je n'obtiens pas ce problème. Je ne sais pas comment gérer le dictionnaire ou traiter les données avant de l'affecter comme valeur initiale.
Edit:
codequi reçoit les données de la poste et il restaure la forme
if request_post_data is not None:
self.form = self.FORM_CLASS(data=request_post_data)
self.draft.raw_data = dict(request_post_data) # preserves multiple values per key
self.draft.save()
else:
# conversion to MultiValueDict restores multiple values per key
self.form = self.FORM_CLASS(initial=MultiValueDict(self.draft.raw_data) if self.draft.raw_data else None)`
request_post_data
vient d'un champ sérialisé dans la db et une valeur réelle ressemble à ceci:
<MultiValueDict: {u'last_name': [u''], u'suffix': [u''], u'prefix': [u''], u'first_name': [u'XX'], u'middle_name': [u'']}>
Merci pour votre aide!
Veuillez fournir quelques exemples de code. Cela rend beaucoup plus facile de vous aider. –