简体   繁体   English

如何从 django 中的外键获取数据

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

I am trying to get the vendor information against the category id,means when someone select the category all vendor's information against the category should be display,but when i call the url it show the error我正在尝试根据类别 id 获取供应商信息,这意味着当有人 select 该类别时,应显示所有供应商针对该类别的信息,但是当我调用 url 时,它会显示错误

' Cannot use QuerySet for "VendorCategory": Use a QuerySet for "Vendor" '. '不能将 QuerySet 用于“VendorCategory”:对“Vendor”使用 QuerySet '。

how can i get the vendor information如何获取供应商信息

Model.py 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)

View.py视图.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)

Template模板

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

You filter with:你过滤:

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 makes not much sense, since that is a collection of VendorCategory s, not Vendor s. vendorselect没有多大意义,因为那是VendorCategory的集合,而不是Vendor的集合。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Django - 从外键获取数据 - Django - get data from foreign key Django:如何从外键和下一个外键中获取值? - Django: How to get value from foreign key and next foreign key? 如何使用外键从django中的其他表中获取数据(Django新手) - How to get data from other table in django with Foreign Key(New to Django) django rest框架从外键关系中获取数据 - django rest framework get data from foreign key relation Django ViewSet,无外键从model获取数据 - Django ViewSet, get data from model without foreign key 在 django 中,如何获取具有精确外键的所有数据? 例如,获取外键 = 1 或 2 的所有帖子或 - In django, how to get all data with exact foreign key? example, get all posts with foreign key = 1 or 2 or 如何从 django 的外键模型字段中获取干净的数据? - How do I get clean data from foreign-key model's field in django? Django:如何从被引用类中的类方法中获取外键的类? - Django: How can I get the foreign key's class from a classmethod in the referred-to class? 如何从Django的外键列中获取日期 - How to get the date from foreign Key column in Django 如何从Django外键关系中的查询集中获取“对象”列表 - How to get the list of “objects” from a queryset in a Foreign Key relationship in Django
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM