Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Product(models.Model):
- name = models.CharField(max_length=150)
- slug = models.SlugField(max_length=150, db_index=True, unique=True)
- price = models.IntegerField(verbose_name='price')
- category = models.ForeignKey(Category, related_name='category', verbose_name='category',
- on_delete=models.CASCADE, default='0')
- size = models.ManyToManyField(Size, related_name='size', verbose_name='size',
- blank=True)
- color = models.ManyToManyField(Color, related_name='color', verbose_name='color',
- blank=True)
- sale = models.ForeignKey(Sale, related_name='sale',
- null=True, blank=True, verbose_name='sale',
- on_delete=models.SET_NULL)
- image = models.ImageField(upload_to='media/img/', default='Null', blank=True, null=True)
- created_at = models.DateTimeField(auto_now_add=True, verbose_name='created')
- class Meta:
- ordering = ('name', 'created_at',)
- index_together = ('id', 'slug')
- verbose_name = 'product'
- verbose_name_plural = 'products'
- def __str__(self):
- return self.name
- def get_absolute_url(self):
- return reverse('product_detail', kwargs={'category_slug': self.category.slug,
- 'slug': self.slug})
- def has_sale(self):
- return self.sale
- def calculate_price(self):
- if self.sale:
- return self.price - (self.price * self.sale.percent * 0.01)
- else:
- return self.price
- def is_new(self):
- new_days = 14
- now = datetime.now(tz=timezone.utc)
- return now - self.created_at < timedelta(days=new_days)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement