Sim*_*nti 11 django django-views
我正在Django中编写我的第一个应用程序,我对create_objectGeneric View 有问题; 在我urls.py,我有:
(r'^new$', CreateView.as_view()),
Run Code Online (Sandbox Code Playgroud)
问题是当用户提交"新"表单时,我需要操纵将保存到数据库的数据(我实际上需要添加user_id外键); 没有通用视图我曾经写过:
form = ClientForm(request.POST)
if form.is_valid():
data = form.save(commit=False)
data.user = request.user
data.save()
form.save_m2m()
Run Code Online (Sandbox Code Playgroud)
在我看来(通知data.user=request.user).我搜索过Django文档,但是我找不到这样做的方法(可能通过扩展CreateView类) - 有些在The Book中只有一个例子覆盖get_object了ListView类的方法来更新last_accessed_date字段.
mes*_*shy 21
您可以通过覆盖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
Run Code Online (Sandbox Code Playgroud)
编辑:现在我form_valid根据Issac Kelly的回答覆盖:
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7643 次 |
| 最近记录: |