from django.db import models class BaseModel(models.Model): lang1 = models.CharField(max_length=200, verbose_name='فارسی') is_for_adults = models.BooleanField(verbose_name='+18 سوال') class Meta: abstract = True def __str__(self): return self.lang1 async def get(self, *attrs): if len(attrs) == 1: return getattr(self, attrs[0], None) else: return tuple(getattr(self, attr, None) for attr in attrs) class Dare(BaseModel): class Meta: verbose_name = 'شجاعت' verbose_name_plural = 'شجاعت ها' class Truth(BaseModel): class Meta: verbose_name = 'حقیقت' verbose_name_plural = "حقیقت ها" class Would_you_rather(BaseModel): class Meta: verbose_name = 'ترجیح میدی' verbose_name_plural = "ترجیح میدی ها" class challenge(models.Model): challenge_type = ( ('map', 'نقشه ی گنج'), ('prize', 'جوایز') ) type = models.CharField(max_length=30, choices=challenge_type, verbose_name='نوع چالش', primary_key=True) image = models.ImageField(upload_to='media/', verbose_name='عکس') link = models.URLField(verbose_name='لینک') text = models.TextField(verbose_name='متن توضیحات') button_text = models.CharField(max_length=40, verbose_name='متن دکمه') def __str__(self): return f'{self.type} - {self.text[0:50]}' class Meta: verbose_name = 'چالش' verbose_name_plural = 'چالش ها' class abjad(models.Model): word = models.TextField(verbose_name='صورت ی سوال') difficulty = ( ('hard', 'سخت'), ('normal', 'متوسط'), ('easy', 'اسون') ) image = models.ImageField(upload_to='media/', verbose_name='عکس بازی افتابه', blank=True, null=True) difficulty_type = models.CharField(max_length=13, choices=difficulty, verbose_name='سختی') answer = models.CharField(max_length=30, verbose_name='جواب') option2 = models.CharField(max_length=30, verbose_name='گزینه ی اشتباه', null=True, blank=True) option3 = models.CharField(max_length=30, verbose_name='گزینه ی اشتباه', null=True, blank=True) option4 = models.CharField(max_length=30, verbose_name='گزینه ی اشتباه', null=True, blank=True) def __str__(self): return f'{self.word}' class Meta: verbose_name = 'سوال ابجد' verbose_name_plural = 'سوالات ابجد' async def get(self, *attrs): if len(attrs) == 1: return getattr(self, attrs[0], None) else: return tuple(getattr(self, attr, None) for attr in attrs) GAME_DATA = { Dare: { 'button': 'dare', 'game_name': 'شجاعت' }, Truth: { 'button': 'truth', 'game_name': 'حقیقت' }, Would_you_rather: { 'button': 'wyr', 'game_name': 'ترجیح میدی' } } from django.db import models class MusicCategory(models.Model): name = models.CharField(max_length=40, verbose_name='نام دسته بندی') def __str__(self): return self.name class Meta: verbose_name = 'دسته بندی موزیک' verbose_name_plural = 'دسته بندی موزیک ها' class MovieCategory(models.Model): name = models.CharField(max_length=40, verbose_name='نام دسته بندی') def __str__(self): return self.name class Meta: verbose_name = 'دسته بندی قیلم' verbose_name_plural = 'دسته بندی فیلم ها' class UploadParent(models.Model): name = models.CharField(max_length=300, verbose_name='نام') message_id = models.CharField(max_length=40, verbose_name='ای دی پیام تلگرام') def __str__(self): return self.name class MusicModel(UploadParent): lyric = models.CharField(verbose_name='متن اهنگ', max_length=4000, blank=True, null=True) singer = models.CharField(max_length=300, verbose_name='خواننده', blank=True, null=True) category = models.ForeignKey(MusicCategory, on_delete=models.CASCADE, verbose_name='دسته بندی', blank=True, null=True) trand = models.BooleanField(default=False, verbose_name='ترند') class Meta: verbose_name = 'مدل اهنگ' verbose_name_plural = 'مدل اهنگ ها' class MovieModel(UploadParent): description = models.CharField(max_length=4000,verbose_name='توضیحات فیلم', blank=True, null=True) category = models.ForeignKey(MovieCategory, on_delete=models.CASCADE, verbose_name='دسته بندی', blank=True, null=True) receommended = models.BooleanField(default=False, verbose_name='پیشنهادی') class Meta: verbose_name = 'مدل فیلم' verbose_name_plural = 'مدل فیلم ها'