在Django中设置初始字段

时间:2018-12-03 07:08:48

标签: django django-models django-forms

我有一个模型表单,当我从视图中调用表单时,我试图将一个初始值传递给其中一个字段。

我的看法如下:

threadform = ThreadForm(text="hello")

模型形式如下:

class ThreadForm(ModelForm):

class Meta:
    model = Thread
    fields = ['title']

def __init__ (self,*args, **kwargs):
    self.fields['title'].initial = kwargs.pop("text")
    super (ThreadForm, self).__init__(*args, **kwargs)

这将导致错误“ ThreadForm”没有属性“ fields”。

如果我撤消超级调用,则会得到“ init ()得到意外的关键字参数'text'”。

请他人提供帮助,因为我似乎找不到正确的方法来获取任何信息,因为其他人似乎正在设置硬编码的初始值,但是我的想法是动态的,因为我想用数据替换文字“ hello”来自模型。

1 个答案:

答案 0 :(得分:1)

threadform = ThreadForm(initial={'fieldname': value})

您可以执行此操作,而无需使用表单中的构造函数