class Game(models.Model):
title = models.CharField("Назва", max_length=100)
tagline = models.CharField("Слоган", max_length=500, default='')
description = models.TextField("Описання")
description_small = models.CharField("Описання коротко", max_length=100, null=True)
poster = models.ImageField("Постер", upload_to="games/poster/")
banner = models.ImageField("Банер", upload_to="games/banner/", null=True)
treiler = models.CharField("Трейлер", max_length=500, null=True)
treiler_img = models.ImageField("Інтро терейлеру", upload_to="games/intro/", null=True)
country = models.CharField("Країна", max_length=30)
company = models.ManyToManyField(Company, verbose_name="Компанія", related_name="company_game")
ganres = models.ManyToManyField(Ganre, verbose_name="Жанри")
price = models.FloatField("Ціна", help_text="У форматі 10.00", max_length=100)
sale_price = models.IntegerField('Скидка в процентах', blank=True, default=0)
world_premiere = models.DateField("Дата виходу", default=date.today)
budget = models.PositiveIntegerField("Бюджет", default=0, help_text="вказуйте сумму в доларах.")
category = models.ManyToManyField(Category, verbose_name="Категорія")
url = models.SlugField(max_length=255, unique=True)
os = models.CharField("Операційні системи", max_length=100)
processor = models.CharField("Процесор", max_length=100)
memory = models.CharField("Операційна памьять", max_length=100)
graphics = models.CharField("Відеокарта", max_length=100)
hard_drive = models.CharField("Місце на диску", max_length=100)
hit_count_generic = GenericRelation(HitCount, object_id_field='object_pk',
related_query_name='hit_count_generic_relation', default=0)
draft = models.BooleanField("Чернетка", default=False)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("game_details", kwargs={"slug": self.url})
def get_sale(self):
if self.sale_price == 100:
return 'FREE'
elif self.sale_price == 0:
return f'{self.price}'
else:
price = float(self.price * (100 - self.sale_price) / 100)
x = float('{:.2f}'.format(price))
return x
class Meta:
verbose_name = "Гра"
verbose_name_plural = "Ігри"
class Tags(models.Model):
title = models.CharField("Заголовок", max_length=100)
url = models.SlugField(max_length=160, unique=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("tag_filter", kwargs={"slug": self.url})
class Meta:
verbose_name = "Тег"
verbose_name_plural = "Теги"
class Good(models.Model):
title = models.CharField("Заголовок", max_length=100)
url = models.SlugField(max_length=160, unique=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("good_blog_filter", kwargs={"slug": self.url})
class Meta:
verbose_name = "Позитив"
verbose_name_plural = "Позитивні"
class Bad(models.Model):
title = models.CharField("Заголовок", max_length=100)
url = models.SlugField(max_length=160, unique=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("bad_blog_filter", kwargs={"slug": self.url})
class Meta:
verbose_name = "Негатив"
verbose_name_plural = "Негативні"
class Post(models.Model):
title = models.CharField("Заголовок", max_length=100)
games = models.ManyToManyField(Game, verbose_name="Вкажіть гру", help_text="Вказати тільки одну гру!",
related_name='games')
tags = models.ManyToManyField(Tags, verbose_name="Теги", help_text="Вказати тільки 4 тега!")
foreword_description = models.TextField("Передмова", max_length=335)
description = models.TextField("Описання")
rank = models.FloatField("Оцінка", default=0, help_text="Від 1 до 10")
good = models.ManyToManyField(Good, verbose_name="Позитивні речі", help_text="Максимальна кількість 4")
bad = models.ManyToManyField(Bad, verbose_name="Негативні речі", help_text="Максимальна кількість 4")
premiere = models.DateField("Дата публікації", default=date.today)
url = models.SlugField(max_length=255, unique=True, default="Введіть унікальний аудентифікатор")
hit_count_generic = GenericRelation(HitCount, object_id_field='object_pk',
related_query_name='hit_count_generic_relation')
draft = models.BooleanField("Чернетка", default=False)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("post_details", kwargs={"slug": self.url})
class Meta:
verbose_name = "Пост"
verbose_name_plural = "Пости"