管理者の検索に問題があり、誰かが私が間違っていることについて何か提案/ポインタを持っているかどうか疑問に思っていましたか?
admin search_fields では、この search_fields = ['games_played', 'dxdiag',] を実行していますが、games_played では問題なく動作しますが、dxdiag は特定のデータを取得して JSON 文字列に変換した dxdiag です。
私がやりたいのは、「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