मैं एक कोड मैं एक content_type और object_id जाता है कि लिपटे समारोह द्वारा किया जा रहा करने के लिए अपने टेम्पलेट्स और js में उपयोग का अनुवाद करने की कोशिश:अद्यतन request.POST या request.GET एक दृश्य डेकोरेटर का उपयोग कर
def translate_modelcode(function=None,redirect_field_name=None):
"""
translate an item-code specified in settings to a content_type
and the item-id to the object_id
"""
def _decorator(function):
def _wrapped_view(request, *args, **kwargs):
item_code=request.REQUEST.get('item-code',None)
if item_code:
object_id = request.REQUEST.get('item-id',None)
# resolve_modelcode get's the models name from settings
content_type = resolve_modelcode(item_code)
ud_dict = {'content_type':content_type,
'object_id':object_id}
if request.method == 'GET':
request.GET.update(ud_dict)
else:
request.POST.update(ud_dict)
return function(request, *args, **kwargs)
return _wrapped_view
if function is None:
return _decorator
else:
return _decorator(function)
बिंदु जहां मैं अटक गया हूं अनुरोध का अद्यतन है। POST/request.GET QueryDict। Django उन dicts को अपरिवर्तनीय के रूप में रिपोर्ट करता है। मैं उन्हें कैसे अपडेट कर सकता हूं?
djangodocs से मैंने सोचा था .update वहां वर्णित "अंतिम-मूल्य तर्क" का उपयोग करेगा, जो मैं पूरी तरह से ठीक हूं। लेकिन ऐसा नहीं हो रहा है। एक प्रतिलिपि बनाना और request.GET को फिर नियत है कि काम करने के लिए या तो प्रतीत होता है नहीं:
request.GET = request.GET.copy().update(ud_dict)
वहाँ a somewhat similar question इस विषय इतने पर यहाँ पर है, लेकिन यह एक संतोषजनक जवाब नहीं मिला। कि प्रश्न में के रूप में ही कोड का उपयोग करना मैं सिर्फ अद्यतन करने के बाद request.POST या request.GET के लिए एक अशक्त रिटर्न प्राप्त:
request._get = request.GET.copy()
import ipdb;ipdb.set_trace()
ipdb> request.GET
ipdb>
तो क्या मैं इस बारे में क्या कर सकते हैं?