【发布时间】:2016-04-08 09:13:51
【问题描述】:
我想准备一个新对象但等待用户输入来创建它:
我已将get_form 添加到此视图中:
class MyCreateView(CreateView):
def get_form(self, form_class):
form = super(MyCreateManView, self).get_form(form_class)
if self.kwargs['ref']:
new_item = get_object_or_404(models.MyModel, pk = self.kwargs['ref'])
new_item.pk = None
new_item.note = "Copia di " + new_item.note
form = MyForm(instance = new_item)
def form_valid(self, form):
...
在该方法中,我读取了 GET 参数“ref”并使用该数据预编译表单字段。
但是当我提交数据的时候,form_valid方法并没有执行,也没有创建新的对象。
【问题讨论】:
-
if form.is_valid(): form = form.save(); context = { "form": form, } ; return render(request, "app/template.html", context) -
是基于类的视图还是普通视图?如果它不是基于类的视图,那么
super(MyCreateManView, self).form_valid(form)没有多大意义。您是否从其他地方获得此代码并零碎复制?
标签: django django-views clone