在我的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.Statement
class 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(),但不确定如何使用。
沧海一幻觉
随时随地看视频慕课网APP
相关分类