Перечисление товаров по отношению к продавцу, нажатому в 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 %}
Вернуться на верх