从一个外键模型中过滤掉一个外键模型

Filtering out a foreignkey model out of a foreignkey model

尝试过滤 MainProduct 的所有 productimg 对象但得到 ValueError Cannot use QuerySet for "MainProduct": Use a QuerySet for "Product". 但不能使用 slug 或 id 将其从 Product 中过滤掉因为它是主页

home:view [不起作用]

#can't use slug here
def home(request):
    mainproduct = MainProduct.objects.all()
    productimg = ProductImage.objects.filter(
        #wanna access all productimg objects of a single product i.e mainproduct
        product=mainproduct
        )

商店:查看[作品]

def detail_view(request, slug):
    products = Product.objects.get(slug=slug)
    productimg = ProductImage.objects.filter(product=products)

店铺:型号

class Product(models.Model):
    name = models.CharField(max_length=150)    

class ProductImage(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    image = models.ImageField(null=True, blank=True, upload_to='somewhere/')

家:模型

class MainProduct(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    title = models.CharField(max_length=50)

mainproduct不是单品:它是所有MainProductQuerySet,即使有单个MainProduct。如果恰好有一个MainProduct,你用.get(…) [Django-doc]查询:

def home(request):
    mainproduct = MainProduct.objects.get()
    productimg = ProductImage.objects.filter(
       product__mainproduct=mainproduct
    )