Перечисление товаров по отношению к продавцу, нажатому в django ecommerce
Я перечислил всех продавцов (пользователей, которые являются сотрудниками) в моем django tempelate, используя следующий код. В tempelates:
{% for stf in staff %}
<li><a href="{% url 'vendor_products' %}">{{stf.username}}</a></li>
{% endfor %}
В просмотрах:
def vendor_products(request):
vend_prod = Product.objects.filter(user_id=request.user.id)
context={
'vend_prod': vend_prod
}
return render(request, "vendor_products.html", context)
Имена поставщиков (продавцов) уже перечислены. Я хочу, чтобы товары соответствующего поставщика отображались на отдельной html-странице при нажатии на имя пользователя поставщика.
Теперь приведенный выше код отображает только товары пользователя, который вошел в систему.
Вот модель продукции на случай, если она понадобится.
class Product(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
title = models.CharField(max_length=150)
keywords = models.CharField(max_length=255)
description = models.TextField(max_length=255)
image = models.ImageField(null=False, upload_to='images/')
price = models.DecimalField(max_digits=12, decimal_places=2,default=0)
amount = models.IntegerField(default=0)
detail = RichTextUploadingField()
Заранее спасибо!
Вы определяете функцию, которая принимает первичный ключ (или другое уникальное поле, например, имя пользователя) в качестве параметра:
def vendor_products(request, pk):
vend_prod = Product.objects.filter(user_id=pk)
context={
'vend_prod': vend_prod
}
return render(request, 'vendor_products.html', context)
В urls.py вы добавляете параметр к url:
urlpatterns = [
path('my/path/<int:pk>/', vendor_products, name='vendor_products')
]
и затем вы передаете значение для первичного ключа при определении URL:
{% for stf in staff %}
<li><a href="{% url 'vendor_products' stf.pk %}">{{ stf.username }}</a></li>
{% endfor %}