1

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

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',).

有人可以解释这里发生了什么,并建议将结果呈现为简单字符串的最佳途径吗?

非常感谢任何帮助。

编辑

模型.py:

class Project(models.Model):
    ...
    zipcode = models.CharField(max_length=5, null=True, blank=True)     
4

1 回答 1

0

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

在视图中:

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

form = ProjectModelForm(initial=initial)
于 2013-06-14T18:11:47.623 回答