我正在努力为我的项目获得正确的查询。这是我的模型的一个例子:
from django.db import models
class Brand(models.Model):
name = models.CharField(max_length=30)
handle = models.SlugField(max_length=30, unique=True, null=True, blank=True)
def __unicode__(self):
return self.name
class Product(models.Model):
product_id = models.SlugField(unique=True)
brand = models.ForeignKey(Brand, on_delete=models.SET_NULL, blank=True, null=True)
collections = models.ManyToManyField('Collection')
def __unicode__(self):
return self.product_id
我正在尝试根据Brand_name
Product.collection
例如:鞋子是Product.collection
,我想获得Brand_name
的所有collection
- 鞋子
我也尝试了__
方法。不知怎的,它不起作用。
答案 0 :(得分:0)
你应该尝试这样的事情:
Brand.objects.product_set.filter(collections__name="Shoes").values('brand__name')
答案 1 :(得分:0)
Brand.objects.filter(
product__collection=product.collection
).values_list('name', flat=True).distinct()
product
是Product
的实例。
答案 2 :(得分:-1)
向$(".navbar:not(.social) a, footer a[href='#myPage']").on('click', function(event){ event.preventDefault()});
添加related_name
,如下所示
foreign key
然后你可以尝试下面的查询,它会返回brand = models.ForeignKey(Brand, on_delete=models.SET_NULL, blank=True,
null=True, related_name='products')
list
个Brand.name
的{{1}}。
product__collections_name='Shoes'