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和productImage.objects.filter(product = product)有什么区别
好的,我会尝试:
Get all the data from
products
whereslug
from the parameter is equals to theslug
field present in theproducts
model. As, you madeslug
a unique field,pro
would always give only one object.另一个,
两者相同,您可以使用其中任何一个。更喜欢您的选择。我个人最常使用过滤器之一。
*Tips:- It is better to write classes in
Capitalize
form in every programming language, it is suggested. Also, try to write model name in singular form,Product
rather thanproducts
. Well, it is not compulsary though but highly suggested.