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.
44 lines
1.4 KiB
44 lines
1.4 KiB
from django.db import models
|
|
|
|
|
|
def photo_filename(instance, filename):
|
|
from slugify import slugify_filename
|
|
|
|
return 'photo_uploads/' + slugify_filename(filename)
|
|
|
|
|
|
class Banner(models.Model):
|
|
title = models.CharField(
|
|
'Альтернативный текст', max_length=256, blank=False, null=False)
|
|
image = models.ImageField('Баннер', upload_to=photo_filename)
|
|
link = models.CharField(
|
|
'Ссылка', max_length=1024, blank=False, null=False)
|
|
is_active = models.BooleanField('Публиковать', default=True)
|
|
|
|
def __str__(self):
|
|
return self.title
|
|
|
|
|
|
STARS_CHOICES = (
|
|
(1, 1),
|
|
(2, 2),
|
|
(3, 3),
|
|
(4, 4),
|
|
(5, 5)
|
|
)
|
|
|
|
|
|
class Feedback(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)
|
|
stars = models.IntegerField('Оценка', default=5, choices=STARS_CHOICES)
|
|
# news = models.ForeignKey(News, related_name='comments')
|
|
|
|
class Meta:
|
|
verbose_name = 'отзыв о сайте'
|
|
verbose_name_plural = 'отзывы о сайте'
|
|
|
|
def __str__(self):
|
|
return '{}: {}'.format(self.name, self.text)
|
|
|