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