gpt4 book ai didi

django - 扩展 Django 的通用 View

转载 作者:行者123 更新时间:2023-12-04 01:32:48 25 4
gpt4 key购买 nike

我正在用 Django 编写我的第一个应用程序,但我遇到了 create_object 的问题。通用 View ;在我的 urls.py , 我有:

(r'^new$', CreateView.as_view()),

问题是,当用户提交“新建”表单时,我需要对将保存到数据库中的数据进行操作(我实际上需要添加 user_id外键);没有我以前写的通用 View :
    form = ClientForm(request.POST)
if form.is_valid():
data = form.save(commit=False)
data.user = request.user
data.save()
form.save_m2m()

在我看来(通知 data.user=request.user)。我已经搜索了 Django 文档,但我找不到一种方法来做到这一点(也许通过扩展 CreateView 类) - 书中的某些内容只有一个覆盖 get_object 的示例。 ListView的方法类来更新 last_accessed_date field 。

最佳答案

您可以通过覆盖 get_form 来做到这一点。方法:

from django.views.generic import CreateView

class CustomCreateView(CreateView):
def get_form(self, form_class):
form = super(CustomCreateView, self).get_form(form_class)
form.instance.user = self.request.user
return form

编辑 :现在我会覆盖 form_valid 根据 Issac Kelly's answer :
from django.views.generic import CreateView

class CustomCreateView(CreateView):
def form_valid(self, form):
form.instance.user = self.request.user
return super(CustomCreateView, self).form_valid(form)

关于django - 扩展 Django 的通用 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7147059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com