我有一个模型表单,我正在尝试传递一个模型实例来初始化值:
class ProjectModelForm(ModelForm):
class meta:
model = Project
def __init__(self, project=None, *args, **kwargs):
super(ProjectModelForm, self).__init__(*args, **kwargs)
if project:
self.fields['zipcode'].initial = project.zipcode
问题是该字段似乎填充了一个元组:
(u'90210',)
即使我使用我知道的整数或字符串值进行硬编码,也会发生这种情况:
self.fields['zipcode'].initial = 90210
呈现为(90210,)
。
self.fields['zipcode'].initial = '90210'
呈现为('90210',)
。
有人可以解释这里发生了什么,并建议将结果呈现为简单字符串的最佳途径吗?
任何帮助非常感谢。
修改
models.py:
class Project(models.Model):
...
zipcode = models.CharField(max_length=5, null=True, blank=True)
答案 0 :(得分:0)
初始化表单时,您可以传递默认值的初始字典:
在视图中:
initial = {}
if project:
initial.update({'zipcode': project.zipcode})
form = ProjectModelForm(initial=initial)