相关疑难解决方法(0)

django修改请求对象

我已经有一个django项目,它的逻辑性如下:

url:URL?username = name&pwd = passwd

视图:

def func(request):
   dic = request.GET

   username = dic.get("username")
   pwd = dic.get("pwd")
Run Code Online (Sandbox Code Playgroud)

但现在我们需要加密数据.然后,请求变为:

url:URL?crypt = XXXXXXXXXX(XXXXXXXX加密str为"username = name&pwd = passwd")

所以我需要修改每个视图功能.但是现在我想在django中间件中解密以防止修改每个视图功能.

但是当我修改request.GET时,我发现错误信息"这个QueryDict实例是不可变的".我怎么修改它?

python django

59
推荐指数
3
解决办法
6万
查看次数

如何在django UpdateView中更改/更改发布数据

我正在使用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()   
Run Code Online (Sandbox Code Playgroud)

所以我想要/想要做的就是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'']}>
Run Code Online (Sandbox Code Playgroud)

所以现在我想改变上面的内容QueryDict,如果值为product_tag空,我需要指定一些默认值并提交最新的querdict

我也知道Querydict是可变的,但是因为我确实需要编辑POST数据,之前submitting/saving to database,我需要将该querydict作为dict,然后编辑它,然后转换回querdict

毕竟我的问题是什么

  1. 在提交/保存到数据库之前,我们如何更改POST数据UpdateView
  2. post方法是否有效?

django post request django-class-based-views

11
推荐指数
1
解决办法
1万
查看次数

更改request.GET QueryDict值

我想在django中更改request.GET querydict对象.我尝试了这个,但我所做的改变没有反映出来.我试过这个

tempdict = self.request.GET.copy() # Empty initially
tempdict['state'] = ['XYZ',]
tempdict['ajaxtype'] = ['facet',]
print self.request.GET
Run Code Online (Sandbox Code Playgroud)

我明白了

<QueryDict: {}> as my output
Run Code Online (Sandbox Code Playgroud)

是否可以在django中更改request.GET querydict对象

python django django-templates

6
推荐指数
2
解决办法
5945
查看次数

为什么要在Django中复制发布数据而不是直接使用它?

涉及帖子数据的Django代码示例通常显示类似于此的代码:

if request.method == "POST":
   post = request.POST.copy()
   #do stuff with post data
Run Code Online (Sandbox Code Playgroud)

是否有理由复制帖子数据而不是直接使用它?

python django

5
推荐指数
1
解决办法
3073
查看次数