我希望你很好。我在不同的应用程序中创建了一个具有多个模型的全局搜索。
帖子模型属于 Nutriscore 文件夹
UserProfile 模型属于 User 文件夹
如果我使用一个涵盖帖子和用户配置文件搜索的单词,例如主课程。我得到了 UserProfile 的一些搜索结果(3 个结果),但 Post 没有出现任何内容(而count
给了我 6 个结果)。所以我不知道代码有什么问题?
用户/视图.py
# global search
class GlobalSearchView(ListView):
template_name = 'search_global.html'
count = 0
countnutri = 0
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['count'] = self.count or 0
context['countnutri'] = self.countnutri or 0
context['query'] = self.request.GET.get('q')
return context
def get_queryset(self): # new
query = self.request.GET.get('q', None)
if query is not None:
nutriscore = Post.objects.filter(
Q(title__icontains=query) | Q(slug__icontains=query) | Q(typederepas__name__icontains=query) | Q(prixrepas__name__icontains=query) | Q(vitesserepas__name__icontains=query) | Q(force__name__icontains=query) | Q(bienfaitrepas__name__icontains=query)
).distinct()
user = UserProfile.objects.filter(
Q(pays__icontains=query) | Q(town__icontains=query) | Q(user__username__icontains=query) | Q(mealtrend__name__icontains=query) | Q(pricetrend__name__icontains=query) | Q(speedtrend__name__icontains=query)| Q(strengthtrend__name__icontains=query) | Q(wellnesstrend__name__icontains=query)
).distinct()
results = chain(nutriscore,user)
qs = sorted(user,
key=lambda instance: instance.pk,
reverse=True)
self.count = len(qs)
qn = sorted(nutriscore,
key=lambda instance: instance.pk,
reverse=True)
self.countnutri = len(qn)
return qs
return qn
return results
梵蒂冈之花
元芳怎么了
精慕HU
相关分类