import logging import os from django.db import models from .base import SeminarModelBase logger = logging.getLogger(__name__) class Text(SeminarModelBase): class Meta: db_table = 'seminar_texty' verbose_name = 'text' verbose_name_plural = 'texty' na_web = models.TextField( 'text na web', blank=True, help_text='Text ke zveřejnění na webu') do_cisla = models.TextField( 'text do čísla', blank=True, help_text='Text ke zveřejnění v čísle') # má OneToOneField s: # Reseni (je u něj jako reseni_cele) # obrázky mají návaznost opačným směrem (vazba z druhé strany) def save(self, *args, **kwargs): super().save(*args, **kwargs) # *Node.save() aktualizuje název *Nodu. for tn in self.textnode_set.all(): tn.save() def __str__(self): return str(self.na_web)[:20] class Obrazek(SeminarModelBase): class Meta: db_table = 'seminar_obrazky' verbose_name = 'obrázek' verbose_name_plural = 'obrázky' # Interní ID id = models.AutoField(primary_key=True) na_web = models.ImageField( 'obrázek na web', upload_to='obrazky/%Y/%m/%d/', null=True, blank=True) text = models.ForeignKey( Text, verbose_name='text', help_text='text, ve kterém se obrázek vyskytuje', null=False, blank=False, on_delete=models.CASCADE) do_cisla_barevny = models.FileField( 'barevný obrázek do čísla', help_text='Barevná verze obrázku do čísla', upload_to='obrazky/%Y/%m/%d/', blank=True, null=True) do_cisla_cernobily = models.FileField( 'černobílý obrázek do čísla', help_text='Černobílá verze obrázku do čísla', upload_to='obrazky/%Y/%m/%d/', blank=True, null=True) # TODO placement hint - chci ho tady / pred textem / za textem