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.

Reply via email to