You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

55 lines
2.1 KiB

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)