我在管理搜索方面遇到了一些问题,并且想知道是否有人有任何建议/指示我做错了什么?
在admin search_fields中我正在执行此search_fields = ['games_played','dxdiag',]并且它适用于games_played但是dxdiag是一个dxdiag,其中检索了某些数据并转换为JSON字符串。
我想要做的是能够搜索多个单词,例如“windows xp”(用“告诉我们有多个单词)”并执行此操作我会覆盖查询集,但它不起作用。 当我搜索“windows xp”然后我得到“0结果(总共13个)”(15个帖子中有13个帖子中有windows xp)并且没有显示帖子。我是否错误地解决了这个问题,或者我只是忘记了什么?
class AdminUserData(admin.ModelAdmin):
search_fields = ['games_played', 'dxdiag',] #Search field at top
def queryset(self, request):
qs = super(AdminUserData, self).queryset(request)
if request.GET:
query = request.GET.get('q')
if query == None:
return qs
data = query.split(' ')
begin = []
end = []
if data == None:
return qs
for item in data:
if item.startswith("'"):
begin.append(item[1:])
if item.endswith("'"):
end.append(item[:-1])
if len(begin) == 0 or len(end) == 0:
return qs
result = []
for i in xrange(0, len(begin)):
if begin[i][:-1] == end[i][1:]:
result.append(begin[i][:-1])
else:
result.append(begin[i] + ' ' + end[i])
for i in xrange(0, len(result)):
qs = qs.filter(dxdiag__icontains=result[i])
print qs #prints all user that has a dxdiag with "windows xp"
return qs