【发布时间】:2013-12-19 05:21:06
【问题描述】:
我正在使用 django 更新视图来为我的 model/records 编辑如下内容
class EditProductView(LoginRequiredMixin, UpdateView):
model = Product
def get_template_names(self):
return ['website/product/edit_product.html']
def get_success_url(self):
return reverse('product_details', args=[self.kwargs['pk']])
def get_context_data(self, **kwargs):
publisher = Publisher.objects.get(product__id=self.kwargs['pk'])
context = super(EditProductView, self).get_context_data(**kwargs)
context.update(
{
'publisher':publisher,
}
)
return context
edit_product = EditProductView.as_view()
所以我想要/想要做的就是在提交到表单之前更改(添加一些数据,根据网站功能编辑已经提交的数据)POST 数据,
所以我知道 UpdateView 有一些方法 def def post(self, request, *args, **kwargs): ,但我不知道如何使用它
假设下面是我得到的 request.POST 数据
<QueryDict: {u'product_name': [u'Biscuit'], u'product_price': [u'1000'], u'product_tag': [u'']}>
所以现在我想更改上面的QueryDict,如果product_tag 的值为空,我需要分配一些默认值并提交最新的查询
我也知道 Querydict 是可变的,但是因为确定我需要编辑 POST 数据,在 submitting/saving to database 之前,我需要将该 querydict 设为 dict,然后对其进行编辑,然后转换回 querdict
所以毕竟我的问题是
- 如何在提交/保存到数据库之前更改
UpdateView中的POST数据 -
post方法有用吗?
【问题讨论】:
标签: django post request django-class-based-views