from django.db import models from django.utils import timezone from django.core.exceptions import ObjectDoesNotExist from mamweb.models.base import SeminarModelBase from personalni.models.organizator import Organizator class Pohadka(SeminarModelBase): """Kus pohádky před/za úlohou v čísle""" class Meta: db_table = 'seminar_pohadky' verbose_name = 'Pohádka' verbose_name_plural = 'Pohádky' ordering = ['vytvoreno'] # Interní ID id = models.AutoField(primary_key=True) autor = models.ForeignKey( Organizator, verbose_name="Autor pohádky", # Při nahrávání z TeXu není vyplnění vyžadováno, v adminu je null=True, blank=False, on_delete=models.SET_NULL ) vytvoreno = models.DateTimeField( 'Vytvořeno', default=timezone.now, blank=True, editable=False ) # má OneToOneField s: # PohadkaNode def __str__(self): # FIXME pohádka text nemá! uryvek = self.text if len(self.text) < 50 else self.text[:(50-3)]+"..." return uryvek def save(self, *args, **kwargs): super().save(*args, **kwargs) # *Node.save() aktualizuje název *Nodu. try: self.pohadkanode.save() except ObjectDoesNotExist: # Neexistující *Node nemá smysl aktualizovat. pass