Как я могу установить логику нового продукта в Django?
В Django, когда продукт только что добавлен, я хочу, чтобы новый продукт был назван в течение примерно 1 недели и появился на странице новых продуктов. Как я могу построить логику этого?
model.py
class Product(models.Model):
name = models.CharField(max_length=100)
category = models.ForeignKey(Category, on_delete=models.DO_NOTHING)
main_image = models.ImageField(upload_to='static/product_images/%Y/%m/%d/')
detail = models.TextField()
keywords = models.CharField(max_length=50)
description = models.CharField(max_length=1000)
price = models.FloatField()
brand = models.CharField(max_length=50, default='Markon', verbose_name='Brand (Default: Markon)')
sale = models.IntegerField(blank=True, null=True, verbose_name="Sale (%)")
bestseller = models.BooleanField(default=False)
amount = models.IntegerField(blank=True, null=True)
available = models.BooleanField(default=True)
stock = models.BooleanField(default=True)
date_created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
@property
def discount(self):
dis = float(self.price - (self.price * self.sale) / 100)
ln = ''
if len(str(dis)) > 3:
for i in str(dis):
ln += i
dis = float(ln)
if len(ln) > 3:
break
return dis
В представлении для страницы новых товаров отфильтруйте набор запросов по полю date_created:
date_week_ago = datetime.now() - timedelta(days=7)
queryset = Product.objects.filter(date_created__gte=date_week_ago)
Таким образом, вы получите только продукты, созданные в течение последних 7 дней