Zdravím,
řeším následující problém:
Mám model:
class Article(models.Model):
...
publication_start = models.DateTimeField("Zacatek publikace")
publication_end = models.DateTimeField("Konec publikace")
approved = models.BooleanField("Schváleno", default=False)
...
# k tom u custom queryset
objects = ArticleQuerySet.as_manager()
class ArticleQuerySet(models.QuerySet):
def in_state(self, state):
now = timezone.now()
# draft
if state == 'draft':
return self.filter(approved=False)
# published
if state == 'published':
return self.filter(approved=True).filter(publication_start__lte=now).
filter(publication_end__gte=now)
# expired
if state == 'expired':
return self.filter(approved=True).self.filter(publication_end__lte=
now)
a zároveň chci v tom modelu mít definovaný getter, který mi pro konkrétní
instanci vrátí její stav
tzn.:
class Article(models.Model):
...
...
@property
def state(self):
# tady v podstate (alepon tedy ideove) stejny kod jako v
ArticleQuerySet.in_state, ale vraci hodnoty 'draft'|'published'|'expired'
a teď už konečně otázka:
šlo by to nějak napsat aby buznys logika toho rozhodování stavu byla na
jednom místě - páč když se změní tak jí musím přepisovat na dvou místech a
to neprospívá kódu ani životnímu prostředí :-)
Díky za každé nakopnutí (v pozitivním smyslu slova)
--
--
E-mailová skupina [email protected]
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs
ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete
e-mail na adresu [email protected].
Chcete-li zobrazit tuto diskusi na webu, navštivte
https://groups.google.com/d/msgid/django-cs/026b41c8-4798-46db-bdee-56c6bfad5d8a%40googlegroups.com.
Další možnosti najdete na adrese https://groups.google.com/d/optout.