单击按钮手动调用save_model?

时间:2014-03-07 16:17:27

标签: python django

所以我在Django管理界面添加了一个按钮。精确模型更改视图上的此按钮 我们来这里举个例子:

class MissionAdmin(ModelAdmin):
    # lot of blablablabla
    def get_urls(self):
        urls = super(MissionAdmin, self).get_urls()
        custom_urls = patterns('',
                               url(r'^(?P<id>\d+)/validate/$', self.admin_site.admin_view(self.validate_and_save),
                                   name='admin_mission_validate_and_save'),)
        return custom_urls + urls

我手动在模板上显示该按钮,它指的是我刚刚在上面定义的验证网址 现在,在我的MissionAdmin类的这个方法中,我需要更改名为status的字段,然后保存整个内容,就像用户自己修改status并单击save按钮一样。

这是我的问题:
我不知道如何保存模型,就像用户点击save按钮一样。

现在这就是我所做的:

def validate_and_save(self, request, **kwargs):
        mission = get_object_or_404(Mission, **{'id': kwargs['id']})
        mission.status = Mission.VALIDATED
        # Need save the whole thing (model, inlines and stuff) right here.
        return HttpResponseRedirect(reverse('admin:me_core_mission_changelist'))

有谁知道如何手动执行保存?它必须对表单进行所有更改。我已经尝试过像这样调用save_model方法:

self.save_model(request, mission, self.form, True)

事实证明它只保存了任务的状态。

0 个答案:

没有答案