将字段添加到模型中但不在表单中的django ModelForm

时间:2015-06-15 20:20:04

标签: python django

我有一个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()之前我想根据现有数据进行查找我必须提取模型所需的其他数据并创建对象。知道如何做到这一点?

1 个答案:

答案 0 :(得分:2)

使用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()

有关详细信息,请参阅ModelForm的{​​{3}}上的文档。