Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

abstract_models.py 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. """
  2. Abstract models for product images
  3. """
  4. from django.db import models
  5. from django.utils.translation import ugettext as _
  6. from django.conf import settings
  7. try:
  8. FULLSIZE_FOLDER = settings.OSCAR_FULLSIZE_IMAGE_FOLDER
  9. except AttributeError:
  10. FULLSIZE_FOLDER = 'images/products-fullsize/%Y/%m/'
  11. try:
  12. THUMBS_FOLDER = settings.OSCAR_THUMBS_IMAGE_FOLDER
  13. except AttributeError:
  14. THUMBS_FOLDER = 'images/products-thumbs/%Y/%m/'
  15. class AbstractImage(models.Model):
  16. u"""An image of a product"""
  17. product = models.ForeignKey('product.Item', related_name='images')
  18. # Namespacing path with app name to avoid clashes with other apps
  19. fullsize = models.ImageField(upload_to=FULLSIZE_FOLDER)
  20. thumbnail = models.ImageField(upload_to=THUMBS_FOLDER)
  21. # Use display_order to determine which is the "primary" image
  22. display_order = models.PositiveIntegerField(default=0)
  23. date_created = models.DateTimeField(auto_now_add=True)
  24. def is_primary(self):
  25. u"""Return bool if image display order is 0"""
  26. return self.display_order == 0
  27. class Meta:
  28. abstract = True
  29. unique_together = ("product", "display_order")
  30. ordering = ["display_order"]
  31. def __unicode__(self):
  32. return u"Image of '%s'" % self.product