簡體   English   中英

如何從 django 中的外鍵獲取數據

[英]How can get the data from the foreign key in django

我正在嘗試根據類別 id 獲取供應商信息,這意味着當有人 select 該類別時,應顯示所有供應商針對該類別的信息,但是當我調用 url 時,它會顯示錯誤

'不能將 QuerySet 用於“VendorCategory”:對“Vendor”使用 QuerySet '。

如何獲取供應商信息

Model.py

class Vendor(models.Model):
     name = models.CharField(max_length=30)
     address = models.CharField(max_length=40)
     Contact_No = models.IntegerField(unique=True)
     email = models.CharField(max_length=30, unique=True)

     def __str__(self):
         return self.name


class VendorCategory(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    vendor = models.ForeignKey(Vendor, on_delete=models.CASCADE)

視圖.py

class All_Vendor(TemplateView):
     template_name = 'purchase/allVendor.html'

     def get(self, request, *args, **kwargs):
         categories = categoryModel.objects.all()
         categoryId = self.request.GET.get('SelectCategory')
         vendorselect = VendorCategory.objects.filter(category_id=categoryId)
         vendor_id = VendorCategory.objects.filter(vendor_id=vendorselect)
         vendors = vendorModel.objects.get(id=vendor_id)
         args = {'categories': categories, 'selectedCategory': categoryId, 'vendorselect': vendorselect, 'vendors': vendors}
         return render(request, self.template_name, args)

模板

{% block content%}

    <form method="get">

        <label>
             <select name="SelectCategory">
        <option disabled="disabled" selected> Select Category</option>
            {% for category in categories %}
            <option value={{ category.id }}>
                {{ category.name }}
            </option>
            {% endfor %}
        </select>

        </label>
    <input type="submit" value="Select">
    </form>
    {% for vendor in vendorselect %}
        {{ vendor.id }}

    {% endfor %}

{% endblock %}

你過濾:

class All_Vendor(TemplateView):
    template_name = 'purchase/allVendor.html'

    def get(self, request, *args, **kwargs):
        categories = categoryModel.objects.all()
        categoryId = self.request.GET.get('SelectCategory')
        vendors = Vendor.objects.filter(
            vendorcategory__category_id=categoryId
        )
        args = {'categories': categories, 'selectedCategory': categoryId, 'vendors': vendors}
        return render(request, self.template_name, args)

vendorselect沒有多大意義,因為那是VendorCategory的集合,而不是Vendor的集合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM