如何使用PostgreSQL从Django中的两个表中检索数据

在我的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(),但不确定如何使用。


沧海一幻觉
浏览 202回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python