Django admin:通过URL传递变量
发布时间:2020-05-27 20:00:09 所属栏目:Python 来源:互联网
导读:我想通过URL将变量传递给 django admin中的另一个页面. 它似乎不起作用,我想传递变量“/?name = hello”,并通过request.GET.get [“name”,“”]捕获它.但是url变为“/?e = 1”过了之后. 如果我使用默认参数’q’,它可以工作,但它会有冲突. 看来这个问题只
|
我想通过URL将变量传递给
django admin中的另一个页面.
谢谢 解决方法问题是当get_query_set尝试将其解析为模型字段时,查找名称不存在.因此引发了IncorrectLookupParameters()异常,该异常又重定向到不太有用的“e = 1”url.这个问题在Django 1.4中通过引入自定义filterspecs来解决.在此之前,一种可能的解决方案是动态覆盖ModelAdmins get_changelist()方法返回的ChangeList类.这个解决方案适用于Django 1.3: class MyModelAdmin(ModelAdmin):
def get_changelist(self,request,**kwargs):
changelist_class = super(MyModelAdmin,self).get_changelist(request,**kwargs)
class CustomChangeList(changelist_class):
def __init__(self,*args,**kwargs):
self._name = request.GET.get('name')
super(CustomChangeList,self).__init__(request,**kwargs)
def get_query_set(self,**kwargs):
if self._name:
del self.params['name']
qs = super(CustomChangeList,self).get_query_set(*args,**kwargs)
if self._name:
return qs.filter([FILTER WHAT YOU WANT HERE...])
return qs
return CustomChangeList (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
