from django.core.urlresolvers import reverse from django.db import models from django.utils import timezone def photo_filename(instance, filename): from slugify import slugify_filename return 'photo_uploads/' + slugify_filename(filename) class Promo(models.Model): created = models.DateTimeField('Дата и время', auto_now_add=True, editable=False) act_from = models.DateTimeField('От', editable=True) act_to = models.DateTimeField('До', editable=True) title = models.CharField('Заголовок', max_length=512, null=False, blank=False, unique=True) slug = models.SlugField('Ссылка', max_length=512, null=False, blank=False, unique=True) text = models.TextField('Акция', null=False, blank=False) is_public = models.BooleanField('Публиковать', default=True) image = models.ImageField('Картинка', upload_to=photo_filename) class Meta: verbose_name = 'акция' verbose_name_plural = 'акции' def __str__(self): return self.title def get_absolute_url(self): return reverse('promo_detail', args=(self.slug,)) def get_status(self): from datetime import datetime if datetime.now() < self.act_from: return 0 elif self.act_from < datetime.now() < self.act_to: return 1 else: return 2 # class NewsComment(models.Model): # created = models.DateTimeField('Дата и время', auto_now_add=True, editable=False) # name = models.CharField('Имя', max_length=45, null=False, blank=False) # email = models.EmailField('Email (не будет опубликован)', null=False, blank=False) # text = models.TextField('Комментарий', null=False, blank=False) # reply_to = models.ForeignKey('self', null=True, blank=True) # news = models.ForeignKey(News, related_name='comments') # class Meta: # verbose_name = 'комментарий' # verbose_name_plural = 'комментарии' # def __str__(self): # return '{}: {}'.format(self.name, self.news.title)