[英]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.