Нельзя назначать переменные в системе шаблонов Django.Ваши две попытки:
{% products = products.object.filter(category = category) %}
и
{% products = category.get_products %}
являются недопустимым синтаксисом Django.
Некоторые системы шаблонов Python похожи на PHP: они позволяют встраивать код Pythonв файлы HTML.Джанго не работает таким образом.Django определяет свой собственный упрощенный синтаксис, и этот синтаксис не включает присваивание.
Вы можете сделать это:
{% for category in categories %}
//code to display category info
{% for product in category.get_products %}
//code to display product info
{% endfor %}
{% endfor %}