from django.db import models # Žádost: # - máme následující časové body: # - dorazila na studijní (/přečetli si ji na studijním) # - dorazila na poštu # - dorazila na internát # - vyzvednuta = platí # # - máme následující žádosti: # - žádost # - žádost o banán, # - žádost o více vegetariánskou stravu v jídelně, # - nevalidní žádost o přístup k záznamům o třídní knize # - validní žádost o přístup k záznamům o třídní knize # https://stackoverflow.com/a/55243162 class ZadostField(models.Field): def __init__(self, **kwargs): self.field_kwargs = kwargs.pop("field_kwargs", {}) super().__init__(**kwargs) def contribute_to_class(self, cls, name, private_only=False): for field in ( models.FloatField(name=name + "_studijni", default=None, null=True, **self.field_kwargs), models.FloatField(name=name + "_posta", default=None, null=True, **self.field_kwargs), models.FloatField(name=name + "_internat", default=None, null=True, **self.field_kwargs), models.FloatField(name=name + "_plati", default=None, null=True, **self.field_kwargs), models.BooleanField(name=name + "_vytistena", default=False, **self.field_kwargs), ): field.contribute_to_class(cls, field.name) setattr(cls, name, ZadostProperty(name)) class ZadostProperty: def __init__(self, name): self.name = name def __get__(self, instance, owner): if not instance: return self raise NotImplementedError # real = getattr(instance, self.name + "_real") def __set__(self, instance, value: complex): raise NotImplementedError # setattr(instance, self.name + "_real", value.real)