我正在使用 ModelForm 并使用保存原始帖子数据的 MultiValueDict 传递存储在数据库中的数据,形式为u'first_name': [u'XX'], u'last_name': [u'']
等,但表单将值完全呈现给实际字段,包括[u'']
包装其余部分。
如果我尝试将相同的 MultiValueDict 传递给常规表单,我不会遇到这个问题。
在将其分配为初始值之前,我对如何处理字典或处理数据一无所知。
编辑:
从帖子中获取数据并将其还原到表单的代码
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
来自数据库中的序列化字段,实际值如下所示:
<MultiValueDict: {u'last_name': [u''], u'suffix': [u''], u'prefix': [u''], u'first_name': [u'XX'], u'middle_name': [u'']}>
最终显示在我的表单中(当发送到 ModelForm 时):
谢谢你的帮助!