在我的views.py中,这是我的代码:def search(request):qset = Q()query = request.GET.get('q', '')queryC = request.GET.get('clients', '')queryD = request.GET.get('documents', '')queryT = request.GET.get('topics', '')if query: newquery = stopwords.strip_stopwords(query) terms = newquery.split() if queryT != 'empty': for term in terms: qset |= ( Q(Topic_id__Name__icontains=queryT) & Q(Question_id__Statement__icontains=term) ) results = Response.objects.filter(qset).distinct() else: for term in terms: qset &= ( Q(Question_id__Statement__icontains=term) ) results = Response.objects.filter(qset).distinct()else: results = []return render_to_response("app/search.html", { "results": results, "query": query})models.py:class Question(models.Model): Topic_id = models.ForeignKey(Topic, on_delete=models.CASCADE) Statement = models.CharField(max_length=255, default='Question') Keyword = models.CharField(max_length=255, default='Keyword') def __str__(self): return self.Statementclass Response(models.Model): Question_id = models.ForeignKey(Question, on_delete=models.CASCADE) Topic_id = models.ForeignKey(Topic, on_delete=models.CASCADE) Response = models.TextField(default='Response') def __str__(self): return self.Response它从用户输入中返回与查询紧密相关的响应。但我也希望它返回与响应相关的问题。我的答复表具有到由Questions_id链接的问题表的外键。我已经读过我可能不得不使用select_related(),但不确定如何使用。
添加回答
举报
0/150
提交
取消