您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django CreateView:如何在保存时执行操作

Django CreateView:如何在保存时执行操作

form_valid()用于CreateViewUpdateView保存表单的方法,然后将其重定向到成功URL。这是不可能的return super(),因为你想在要保存的对象和重定向之间进行操作。

第一种选择是不调用super(),并在视图中复制两行。这样做的好处是非常清楚发生了什么。

def form_valid(self, form):
    self.object = form.save()
    # do something with self.object
    # remember the import: from django.http import HttpResponseRedirect
    return HttpResponseRedirect(self.get_success_url())

第二种选择是继续调用super(),但是直到你更新了关系后才返回响应。这样做的好处是你没有在中复制代码super(),但是缺点是除非你熟悉所super()执行的操作,否则不清楚正在发生的事情。

def form_valid(self, form):
    response = super(CourseCreate, self).form_valid(form)
    # do something with self.object
    return response
Go 2022/1/1 18:23:13 有474人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶