2013-03-05 24 views
5

Obecnie próbuję uzyskać "Widoki oparte na klasach" z Django 1.5.Projektowanie CBV w Django

Z perspektywy projektowania zastanawiam się, gdzie umieścić logikę do przetwarzania danych pochodzących z formularza w prostym FormView.

Wiem, że cały kod walidacji formularza wchodzi w metodę form_valid(). Ale gdzie umieścić rzeczy, które przetwarzają dane formularza. Czytałem, że jest to niewłaściwe do umieszczenia zbyt dużej logiki w metodzie form_valid().

get(), post(), get_context_data(), head(), itd ... metody, które powinno się używać w takim przypadku?

+0

Czy znasz https://docs.djangoproject.com/en/dev/topics/class-based-views/edycja ogólna /? –

+0

jep! Ale to mi nie pomogło! – Jurudocs

Odpowiedz

1
  1. Form, czyszczenie danych, etc wychodzi z klasy postaci, w czystych metod

  2. Przetwórstwo ważnej postaci powinny iść w zamienione na form_valid metody

to jest to! Jeśli Twój przypadek użycia jest bardziej skomplikowany, możesz zadzwonić do innych metod tworzenia z form_valid ...

1

Każda odpowiedź na to pytanie jest otwarta do dyskusji. Powiedział, że widoki są tylko klasami Python, więc możesz nadpisać dowolną metodę, aby odpowiednio dostosować rzeczy.

Jest również całkowicie uzasadnione stworzenie dodatkowej metody na twojej klasie do przetwarzania danych. walidacja