列出与在 django 电子商务中点击的供应商相关的产品

List products in relation to the vendor clicked in django ecommerce

我使用以下代码在我的 Django 模板中列出了所有供应商(用户是员工)。 在模板中:

{% 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)

供应商(vendors)的用户名已经列出。我想要的是当单击供应商用户名时,各个供应商的产品将显示在单独的 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, <strong>pk</strong>):
    vend_prod = Product.objects.filter(user_id=<strong>pk</strong>)
    context={
        'vend_prod': vend_prod
    }
    return render(request, 'vendor_products.html', context)

urls.py 中将参数添加到 url:

urlpatterns = [
    path('my/path/<strong><int:pk></strong>/', vendor_products, name='vendor_products')
]

然后在确定 URL:

时传递主键的值
{% for stf in staff %}
    <li><a href="{% url 'vendor_products' stf.pk %}">{{ stf.username }}</a></li>
{% endfor %}