谁能让我简单理解
Posted
技术标签:
【中文标题】谁能让我简单理解【英文标题】:can anyone make me understand simply 【发布时间】:2020-08-24 18:13:37 【问题描述】: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.all
rahter 和productImage.objects.filter(product=product)
有什么区别
【问题讨论】:
【参考方案1】:好的,我试试:
pro = products.objects.get(slug=slug)
从products
获取所有数据,其中参数中的slug
等于products
模型中的slug
字段。因为,您将 slug
设为唯一字段,pro
将始终只给出一个对象。
另一个,
product.productImage_set.all / productImage.objects.filter(product=product)
意思是,从productImage中获取所有数据,其中productImage的product对象等于product字段。或者,产品有productImage,即一对多关系。因此,您要检索该产品的 productImage 数据,返回的值可能很多。
例如,您的 facebook 个人资料,您的个人资料是一个,但您的照片可能是多个。因此,在这里,您需要个人资料中的所有照片,其中个人资料是您。因此,profile 是 products
,productImage
是 photos。
两者都是一样的,你可以使用它们中的任何一个。更喜欢你的选择。就个人而言,我最常使用过滤器一。
*提示:- 建议在每种编程语言中以Capitalize
形式编写类。此外,请尝试以单数形式编写型号名称,Product
而不是products
。好吧,虽然不是强制性的,但强烈建议这样做。
【讨论】:
product.productImage_set.all / productImage.objects.filter(product=product) 这个语句定义了什么? 我进行了更改。 你来自哪里?Dumre
, Tanahun
...现在...隔离时间!!!!!!其他:Dillibazzar
。跑题了。。哈哈哈
我明白了。以上是关于谁能让我简单理解的主要内容,如果未能解决你的问题,请参考以下文章