如何在modelform中给出初始值

时间:2009-06-28 08:48:25

标签: django google-app-engine

如何为ModelForm中的字段分配初始值?例如:

class Form1(forms.Form):
    title=forms.CharField(initial="hello")

使用modelForm的等价物,其基本语法如下:

class Form2(djangoforms.ModelForm):
    class Meta:
        model=SomeModel
        fields=('title',)

我要做的是生成一个CRUD。由于我在一个appengine项目中这样做,我不能使用通用视图。 Appengine为我们提供了djangoforms.ModelForm,其功能与django的ModelForm类似,但使用了appengine的数据存储区。

我需要以上功能来执行“编辑”部分。

2 个答案:

答案 0 :(得分:24)

通常,您将要编辑的模型对象作为实例关键字arg传递给表单: Form2(instance = somemodelobject),但我不知道它是否适用于GAE。 您始终可以将初始字典传递给表单的构造函数,例如

Form2(initial = {"title": "blahblah"})

答案 1 :(得分:4)

模型表格默认值取自模型本身。例如:

class SomeModel(models.Model):
    title  = models.CharField(max_length=45, default="hello")

您无需对ModelForm进行任何更改:

class RequestForm(forms.ModelForm):

    class Meta:
        model = SomeModel