【问题标题】:Add field to django ModelForm that are in the model but not in the form将字段添加到模型中但不在表单中的 django ModelForm
【发布时间】:2015-08-31 11:41:06
【问题描述】:

我有一个 django 模型和一个 ModelForm。该模型有大约 10 个字段,但我只想用 ModelForm 为用户展示一些。所以我有这样的事情:

class Create_EventForm(ModelForm):
    class Meta:
        model = Event
        fields = ['event_name','event_datetime','event_venue','event_url','event_tags','event_zip','event_category','event_description']

但是,我无法根据这些数据创建对象,因为仍然缺少字段。在我看来,当我通过 POST 接收数据时,我正在执行以下操作之一:

if request.user.is_authenticated:
        if request.POST:
            f = Create_EventForm(request.POST)
            if f.is_valid():
                ne = f.save()

我想做的是在 f.save() 之前我想根据现有数据进行查找,我必须提取模型所需的其他数据并创建对象。知道如何做到这一点吗?

【问题讨论】:

    标签: python django


    【解决方案1】:

    使用commit=False保存表单,编辑返回的实例,然后将其保存到数据库中。

    if request.POST:
        f = Create_EventForm(request.POST)
        if f.is_valid():
            event = f.save(commit=False)
            event.other_value = lookup_value()
            event.save()
    

    有关详细信息,请参阅ModelFormsave method 上的文档。

    【讨论】:

      猜你喜欢
      • 2011-06-07
      • 2015-06-25
      • 2015-09-06
      • 1970-01-01
      • 2013-05-14
      • 2011-06-11
      • 2012-11-13
      • 1970-01-01
      • 2013-07-09
      相关资源
      最近更新 更多