任何人都可以让我简单地理解

问题描述 投票:0回答:1
def single(request,slug):
    pro = products.objects.get(slug=slug)
    images=productImage.objects.filter(product=pro)
    template = 'products.html'
    context = {'pro': pro,'images':images}
    return render(request, template, context)

class products(models.Model):
    title = models.CharField(max_length=120)
    desc = models.TextField()
    price = models.DecimalField(max_digits=10, decimal_places=2, default=29.99)
    sales_price = models.DecimalField(max_digits=10, decimal_places=2, blank=False,         null=False, default=0)
    slug = models.SlugField(unique=True)
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
    update = models.DateTimeField(auto_now_add=False, auto_now=True)
    active = models.BooleanField(default=True)

    def __str__(self):
        return self.title

    def get_price(self):
        return self.price

    def get_absolute_url(self):
        return reverse("single", kwargs={"slug": self.slug})


class productImage(models.Model):
    product = models.ForeignKey(products, on_delete=models.CASCADE)
    image = models.ImageField(upload_to='images/')
    featured = models.BooleanField(default=False)
    Thumbnail = models.BooleanField(default=False)
    active = models.BooleanField(default=True)
    update = models.DateTimeField(auto_now_add=False, auto_now=True)

    def __str__(self):`enter code here`
        return self.product.title   

pro = products.objects.get(slug=slug)images=productImage.objects.filter(productt=product)的任务是什么。

[使用product.productImage_set.allproductImage.objects.filter(product=product)有什么区别

django django-rest-framework django-views django-templates
1个回答
0
投票

好的,我会尝试:

pro = products.objects.get(slug = slug)

products中获取所有数据,其中参数中的slug等于slug模型中存在的products字段。由于您将slug设置为唯一字段,因此pro将始终只提供一个对象。

另一个,

product.productImage_set.all / productImage.objects.filter(product = product)

意思是,从productImage获取所有数据,其中productImage的product对象等于product字段。或者,产品具有productImage,这是一对多的关系。因此,您要检索该产品的productImage数据,返回的值可能很多。

例如,您的Facebook个人资料,您的个人资料是一个,但您的照片可能很多。因此,在这里,您需要个人资料中的所有照片,个人资料就是您。因此,个人资料productsproductImage照片

两者都是相同的,您可以使用它们中的任何一个。更喜欢您的选择。我个人使用过滤器最多。

*提示:-最好以每种编程语言以Capitalize形式编写类。另外,尝试以单数形式Product而不是products编写型号名称。好吧,虽然不是强制性的,但是强烈建议。

© www.soinside.com 2019 - 2024. All rights reserved.