【问题标题】:How to give initial value in modelform如何在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 的数据存储区。

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

【问题讨论】:

标签: django google-app-engine


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2013-08-17
      • 2019-08-11
      • 2018-01-11
      • 2011-02-28
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 2018-08-21
      相关资源
      最近更新 更多