Ошибка:
TemplateSyntaxError at /some/location
Caught DatabaseError while rendering: more than one row returned by a subquery used as an expression
Модель:
class Price(models.Model):
supermarket = models.ForeignKey(SuperMarket)
product = models.ForeignKey(Product)
price = models.DecimalField(max_digits=6, decimal_places=2)
Запрос:
def costs_of_product(product, supermarkets):
filter1 = Price.objects.filter(product=product)
return filter1.filter(supermarket__in=supermarkets)
, а результат productList
является результатомвызов costs_of_product
.
Шаблон:
<ul>
{% for pr in productList %}
<li>{{ pr.supermarket }}: {{ pr.price }} € </li>
{% empty %}
<li>No products are available.</li>
{% endfor %}
</ul>
Вопрос : почему вышеупомянутая ошибка отображается в первой строке for
вшаблон?
РЕДАКТИРОВАТЬ: После комментария amateur
, я добавил эту строку в представление (ни один из приведенных выше фрагментов).это сработало!Что очень любопытно, так это то, что когда я перемещаю эту строку в теле функции costs_of_product()
, она не работает!