我想基于一些信息预填充我的django表单中的数据,但不使用ModelForm,所以我不能只设置实例。Prepopulate Django(非模型)表格
这似乎应该很容易,但由于某种原因,我找不到任何文件告诉我如何做到这一点。这是我的表格:
class MyForm(forms.Form):
charfield1 = forms.CharField(max_length=3)
charfield2 = forms.CharField(max_length=3)
choicefield = forms.ModelChoiceField(MyModel.objects.all())
我尝试只是在做:
form = MyForm()
form.charfield1 = "foo"
form.charfield2 = "bar"
# a model choice field
form.choicefield = MyModel.objects.get(id=3)
不工作。
感谢 - 这工作。但是,它不适用于模型的外键。我尝试传递模型实例本身在字典中,这引发了一个异常,并且我尝试传入pk/id,但不会失败,但不会在我的表单UI中正确预加载它。 – Cory 2009-06-01 20:02:16
使用对象ID应该工作。我刚刚使用ModelChoiceField对其进行了测试。你能向我们展示你的表单定义吗? – 2009-06-01 20:13:31