【发布时间】:2018-12-03 07:08:47
【问题描述】:
我有一个模型表单,当我从视图调用表单时,我试图将初始值传递给其中一个字段。
我的观点如下:
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” has no attribute 'fields'。
如果我反转超级调用然后得到“init() got an unexpected keyword argument 'text'”。
请有人帮忙,因为我找不到任何关于正确方法的信息,因为其他人似乎在设置硬编码的初始值,但我的是动态的,因为我想用数据替换文字“你好”来自模型。
【问题讨论】:
-
您现在可能已经解决了这个问题,但在我看来,您应该只切换最后两行。在尝试根据 kwargs 设置 title 的初始值之前从 super 继承
-
谢谢,我想就是这样。一年多前我问过这个问题,此后我的 Django 和 Python 技能有了很大的提高。你说的很有道理。我最近制作了一些 Django 应用程序,现在使用它们的表单好多了。谢谢你的回答:-)
标签: django django-models django-forms