如何在modelform中给出初始值

Posted

技术标签:

【中文标题】如何在modelform中给出初始值【英文标题】:How to give initial value in modelform 【发布时间】:2010-11-06 11:23:12 【问题描述】:

如何为 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 的数据存储区。

我需要上述功能来完成“编辑”部分。

【问题讨论】:

相关:***.com/q/604266/212218 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

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

class RequestForm(forms.ModelForm):

    class Meta:
        model = SomeModel

【讨论】:

以上是关于如何在modelform中给出初始值的主要内容,如果未能解决你的问题,请参考以下文章

Django - UpdateView ModelForm 在查询集字段上设置初始值

使用 Django,如何在模板中动态设置 ModelForm 字段值?

具有反向多对多字段的 ModelForm

基于下拉值选择显示Django ModelForm中的链接

初始化后如何从函数中获取值?

我们如何在 C++ 中初始化所有值为 0 的向量 [重复]