/
asigatchov
/
recdev
Обзор
Документация
Войти
/
asigatchov
/
recdev
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
blog/models.py
66 строк
2 KB
Alexander Sigatchov
two lang
13 июн 2026, 21:41
13 июн 2026, 21:41
8359ba5
Код
Авторство
О чём код?
from django.db import models from django.contrib.auth import get_user_model class Tag(models.Model): title = models.CharField(max_length=255) active = models.BooleanField(default=True) def __str__(self): return self.title class Article(models.Model): STATE_CHOICES = ( (0, 'Draft'), (1, 'Published'), ) title = models.CharField(max_length=200) title_ru = models.CharField(max_length=200, blank=True, null=True) seo_title = models.CharField(max_length=255, blank=True, null=True) seo_title_ru = models.CharField(max_length=255, blank=True, null=True) seo_desc = models.TextField(blank=True, null=True) seo_desc_ru = models.TextField(blank=True, null=True) seo_keyword = models.TextField(blank=True, null=True) seo_keyword_ru = models.TextField(blank=True, null=True) content = models.TextField() content_ru = models.TextField(blank=True, null=True) state = models.IntegerField(choices=STATE_CHOICES, default=0) pos = models.IntegerField(default=0) author = models.ForeignKey( get_user_model(), on_delete=models.SET_NULL, null=True, related_name='articles' ) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) short = models.TextField(blank=True, null=True) short_ru = models.TextField(blank=True, null=True) main_photo = models.ForeignKey( 'Photo', on_delete=models.SET_NULL, null=True, blank=True, related_name='main_for_articles' ) short_url = models.CharField(max_length=255, blank=True, null=True) tags = models.ManyToManyField(Tag, related_name='articles') def __str__(self): return self.title def get_localized_field(self, field_name, lang="en"): if lang == "ru": localized_value = getattr(self, f"{field_name}_ru", None) if localized_value: return localized_value return getattr(self, field_name) class Photo(models.Model): image = models.ImageField(upload_to='photos/') post = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='photos', null=True, blank=True) uploaded_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.image.name