【发布时间】:2021-04-29 14:35:14
【问题描述】:
models.py
class products(models.Model):
name = models.CharField(max_length=100)
sku = models.CharField(max_length=50)
vendor = models.CharField(max_length=50)
brand = models.CharField(max_length=50)
price = models.FloatField()
product_status = models.BooleanField()
quantity = models.IntegerField()
def __str__(self):
return self.name
# categories
class categories(models.Model):
category_name = models.CharField(max_length=50)
parent_id = models.IntegerField()
# product categories
class product_categories(models.Model):
product = models.ForeignKey(products, on_delete=models.CASCADE)
category = models.ForeignKey(categories, on_delete=models.CASCADE)
def __str__(self):
return self.category
- 我可以使用 'category' 表数据(在 django shell 中)访问
data = products.objects.all()
data.values('product_categories__category__category_name')
output: <QuerySet [{'product_categories__category__category_name': 'xxxx'}}]>
- 如果我把这个(在 django shell 里面)
data.product_categories.category
output: 'QuerySet' object has no attribute 'product_categories'
如何获得一个查询集(可以传递给 html),其中包括“类别”表中的数据以及“产品”表中的数据
【问题讨论】:
-
嗨,您不需要 3 个模型,您可以使用产品模型与类别建立很多关系,这将使查询集更容易
标签: python django django-models django-views django-queryset