Django模型在初始值给定时形成返回元组的自定义初始值

Django模型在初始值给定时形成返回元组的自定义初始值,django,django-forms,Django,Django Forms,我有一个模型表单,我试图传递一个模型实例来初始化值: class ProjectModelForm(ModelForm): class meta: model = Project def __init__(self, project=None, *args, **kwargs): super(ProjectModelForm, self).__init__(*args, **kwargs) if project:

我有一个模型表单,我试图传递一个模型实例来初始化值:

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)     

初始化表单时,可以传递默认值的初始字典:

鉴于:

initial = {}
if project:
    initial.update({'zipcode': project.zipcode})

form = ProjectModelForm(initial=initial)

你能显示型号代码吗?它不是
initial
Its
initial
。也许你有一个打字错误,或者你做错了。是的-在文章中输入错误,而不是在代码中。你说的呈现是什么意思?你能说明你是如何输出它的吗?你是如何发送
项目
对象的吗?它是
项目
模型的一个实例吗?事实上,这就是我目前所拥有的,但我想更简洁一些,并传递各种参数来修改表单。我想把所有这些逻辑都保存在form类中,不在视图中。@DarwinTech
self.fields['zipcode'].initial='90210'
应该可以工作。我看不出这行代码有任何错误。当你说
呈现为('90210',)
你的意思是它在网页上显示为这样吗?是的,在表单字段(文本输入)中,它显示为
('90210',)
。很抱歉,这是我的错误。我在
project.zipcode
后面有一个逗号,因此变量被视为元组:/