当我单击add时,为什么django在url ?_changelist_filters=user%3D5275上添加?我在change_list上的网址最初是?user=5275。问题是用户应该在select输入中被选中,而它不是。如果我在?user=5275中更改它,它是工作的。
如何使django“读取”?_changelist_filters=user%3D5275或在?user=5275中更改它
发布于 2017-06-20 14:46:38
您可以在AdminForm中添加如下内容:
class UsersAdminForm(forms.ModelForm):
@staticmethod
def parse_filter_kwargs(**kwargs):
if 'initial' in kwargs:
if u'_changelist_filters' in kwargs['initial']:
filters = kwargs['initial'][u'_changelist_filters']
var, value = filters.split('=')
if var == u'user':
return {'initial': {var: value}}
return kwargs
def __init__(self, *args, **kwargs):
kwargs = self.parse_filter_kwargs(**kwargs)
super(UsersAdminForm, self).__init__(*args, **kwargs)发布于 2018-05-12 07:29:03
所有_changelist_filters仿射的解
class ProductForm(forms.ModelForm):
@staticmethod
def parse_filter_kwargs(**kwargs):
if 'initial' in kwargs:
if u'_changelist_filters' in kwargs['initial']:
filters = kwargs['initial'].pop('_changelist_filters')
for key, value in [p.split('=') for p in filters.split('&')]:
kwargs['initial'][key] = value
return kwargs
def __init__(self, *args, **kwargs):
kwargs = self.parse_filter_kwargs(**kwargs)
super(ProductForm, self).__init__(*args, **kwargs)发布于 2018-11-28 22:02:36
from urllib.parse import parse_qsl
query_params = dict(parse_qsl(request.GET['_changelist_filters']))
print(query_params.get('user'))https://stackoverflow.com/questions/40804815
复制相似问题