基于共享列结合QuerySets - django

时间:2017-04-18 21:15:10

标签: python django

Models.py

class sells(models.Model):
    #unimportant stuff here
    type = ...
    supplier = ...
    user = ...
    item_id = models.AutoField(primary_key=True)

class sale_items(models.Model):
    item_id = models.OnetoOneField(sells, on_delete=models.CASCADE, null=True)
    item_name = ...
    description = ... 
    #other unimportant stuff

所以我正在尝试实现搜索,现在我已经拥有它,以便搜索返回在sale_items中找到的任何信息,例如名称和描述。但我还需要输出销售模型中的物料类型和供应商。基本上我正在尝试做这样的事情:

SELECT A.item_id, A.item_name ... B.type, B.supplier ... 
FROM sale_items A, sells B
WHERE A.item_id = B.item_id

Views.py

def SearchView(request):
    query_results = sale_items.objects.filter(Q(item_name__icontains=search)
                      Q(description__icontains=search))
    return render(request, 'db/search_results.html', {'query_results':query_results})

我没有包含变量搜索的代码,但它是输入搜索栏的文本。 query_results是正确的,在我的模板(search_results.html)中,我使用for循环打印出项目名称和描述。

我想以某种方式在sells模型中包含对应于相同item_id的信息。我一直在尝试很多不同的事情来尝试让它发挥作用而无法弄明白。

1 个答案:

答案 0 :(得分:0)

试试这个:

query_results = sale_items.objects.filter(Q(...) | Q(sells__type__icontains=search))