所以我在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)
事实证明它只保存了任务的状态。