У меня есть этот код, который я хочу, чтобы он мог возвращать несколько продуктов. Теперь он вернет только последний. Я думаю, это потому, что переменные перезаписываются, но я не знаю других способов исправить это.
def result(request):
rawquery = request.GET.get('q') #gets the product name to search from a form
Product_set = Product.objects.filter(name__icontains=rawquery).distinct()
for product in Product_set:
name = product.name
id = product.id
store_name = product.store_name
Price_set = Scan.objects.filter(product=id)
for price in Price_set:
current_price = price.price
context = {
'name': name,
'store_name': store_name,
'price': current_price,
'query': rawquery
}
return render(request, 'result.html', context)
Это шаблон
% {extends 'base.html' %}
{% block content %}
<h1>Results for {{ query }} </h1>
<p> {% if name %} {{name}} {% else %} None {% endif %} | {% if store_name %} {{store_name}} {% endif %} | {% if price %} {{price}} {% endif %} </p>
{% endblock content %}