【发布时间】:2019-06-19 06:06:55
【问题描述】:
我正在尝试在表单上设置字段的初始值。该字段不是模型的一部分,但是当我尝试将其设置为一个值时,该字段为空白。根据我的研究,这可能是因为表单是“绑定”的,这对我来说有些意义,但在这种情况下,该字段不是模型的一部分。
我的表格:
#Form for editing profile
class CatForm(forms.ModelForm):
pictureid = forms.CharField()
class Meta:
model = Cat
fields = ['name']
def __init__(self, *args, **kwargs):
picid = kwargs.pop("pictureid")
print(picid)
super(CatForm, self).__init__(*args, **kwargs)
self.fields['pictureid'] = forms.CharField(initial=picid, required=False)
型号:
class Cat(models.Model):
name = models.CharField(max_length=34,null=False)
从视图上看是这样称呼的:
catform = CatForm(request.POST, pictureid=instance.id)
我希望它将字段设置为初始属性的值,但事实并非如此。我试过直接添加字符串来测试它,但没有设置。
这似乎对我有用:
class CatForm(forms.ModelForm):
class Meta:
model = Cat
fields = ['name']
def __init__(self, *args, **kwargs):
picid = kwargs.pop("pictureid")
super(CatForm, self).__init__(*args, **kwargs)
self.fields['pictureid'] = forms.CharField(initial=picid)
我还需要在启动表单时从调用中删除“request.POST”。
【问题讨论】:
-
我需要从视图中提供更多信息,但我认为这是因为在显示的调用中我传递了“request.POST”。我认为这里不需要,因为我只是在初始化表单。然后从 init 方法设置字段是否有效?
标签: python django django-forms