【发布时间】:2020-11-06 01:50:56
【问题描述】:
我想保存一个表单,它会在保存之前获取一些最初设置/编辑的数据:
class ProductCreateView( CreateView):
model = Product
form_class = ProductForm
template_name = "store/create.html"
def get_initial(self):
return {"remark": "testnote"}
def get_success_url(self):
return reverse_lazy("index")
def form_valid(self, form):
self.object = form.save(commit=False)
Product.objects.create(name = self.object.name,
price = 99,
remark = "NOTE",)
return HttpResponseRedirect(self.get_success_url())
这很好用,不过我有两个问题:
- 我想我可以简单地用
get_initial添加数据,但这是None在form_valid中打印self.object.remark时。 - 这通常是一种聪明的方法吗?我需要一个新的
pk,这样我想我可以避免猜到一个(nogo ...)。我无法填充 forms.py 中的字段。
【问题讨论】:
-
我会说,这不是 smart 方法。我没有看到在这里覆盖
form_valid(...)方法的任何优势。我错过了什么吗?
标签: django django-views django-forms