Отображение любимых продуктов пользователя в Django

Отображение любимых продуктов пользователя в Django

Когда я хочу отобразить любимые продукты пользователя, результат запроса ничего не отображает и возвращает мне None. На самом деле, я хочу показать пользователю, какие продукты он добавил в свой список любимых

My model, view and address Url as follows

my model:

class UserWishlist(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, blank=False, related_name='user_favourite')
    products = models.ManyToManyField(Product, related_name='product_favourite', blank=True, )
my url :

 path('wish/', views.wish, name='wish'),

my view:

def wish(request):
    data = UserWishlist.objects.get(user_id=request.user.id)
    return render(request, 'home/test.html', {'data': data})

my template :
{{ data.products.name }}

{{ data.products.name }} возвращает список, но вы не использовали цикл для вывода списка, верно? Вы должны использовать

{% for product in data.products%}
{{product.name}}
{% endfor %}

вместо него.

Ваш products является ManyToManyField, который возвращает QuerySet, поэтому вы должны обращаться с ним как со списком. Вы должны представить его скорее так (предполагая, что data является UserWishlist объектом):

{% for product in data.products.all %}
    {{ product.name }}
{% endfor %}

Попробуйте что-нибудь вроде этого:

{% for product in data.products.all %}
{{ product.name }}
{% endfor %}
Вернуться на верх