Advertisement
Guest User

Untitled

a guest
Jun 16th, 2020
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. class Product(models.Model):
  2.  
  3. name = models.CharField(max_length=150)
  4. slug = models.SlugField(max_length=150, db_index=True, unique=True)
  5. price = models.IntegerField(verbose_name='price')
  6. category = models.ForeignKey(Category, related_name='category', verbose_name='category',
  7. on_delete=models.CASCADE, default='0')
  8.  
  9. size = models.ManyToManyField(Size, related_name='size', verbose_name='size',
  10. blank=True)
  11.  
  12. color = models.ManyToManyField(Color, related_name='color', verbose_name='color',
  13. blank=True)
  14.  
  15. sale = models.ForeignKey(Sale, related_name='sale',
  16. null=True, blank=True, verbose_name='sale',
  17. on_delete=models.SET_NULL)
  18.  
  19. image = models.ImageField(upload_to='media/img/', default='Null', blank=True, null=True)
  20. created_at = models.DateTimeField(auto_now_add=True, verbose_name='created')
  21.  
  22. class Meta:
  23. ordering = ('name', 'created_at',)
  24. index_together = ('id', 'slug')
  25. verbose_name = 'product'
  26. verbose_name_plural = 'products'
  27.  
  28. def __str__(self):
  29. return self.name
  30.  
  31. def get_absolute_url(self):
  32. return reverse('product_detail', kwargs={'category_slug': self.category.slug,
  33. 'slug': self.slug})
  34. def has_sale(self):
  35. return self.sale
  36.  
  37. def calculate_price(self):
  38. if self.sale:
  39. return self.price - (self.price * self.sale.percent * 0.01)
  40. else:
  41. return self.price
  42.  
  43. def is_new(self):
  44. new_days = 14
  45. now = datetime.now(tz=timezone.utc)
  46. return now - self.created_at < timedelta(days=new_days)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement