Отображение любимых продуктов пользователя в 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 %}