Wpis z mikrobloga

Skończyłem robić mikrobloga i chciałbym zmienić views na class based, ale chyba nie za bardzo rozumiem. Mam taki widok https://pastebin.com/p6xWMc5V są tu wpisy, komentarze i formularze do wpisów i komentarzy. Przerobiłem to tak https://pastebin.com/VWFt5Pvi i działa, ale w tym wypadku nie widzę korzyści ze zrobienia tego w klasie, chyba że jest to źle zrobione. Kod formularzy powtarza się też w widoku tagu, lub profilu użytkownika i z grubsza też kod odnoszący się do postów i komentarzy. Czy powinienem stworzyć klasę dziedziczącą z FormView i na przykład tworzyć jej instancję w IndexView?
#django
  • 4
CBV warto znać ale nie warto używać (zazwyczaj).

Praca z widokami opartymi na klasach jest dość prosta, gdy mają jasno zdefiniowany cel. Właśnie dlatego te widoki działają tak dobrze w samouczkach. Generyczny widok to zastosowanie gdzie CBV lśni.

Niestety w realnym życiu nie wychodzi tak kolorowo, klienci mają przeróżne, czasem przedziwne wymagania biznesowe, a cele zmieniają się z każdą iteracją. Niestety refaktor klasy wymaga znacznie więcej wysiłku niż refaktor funkcyjnego widoku, zwłaszcza
@Lunatik: O dzięki wielkie, kłaniam się nisko. W takim razie poprawię wszystko według twoich uwag i sprawdzę resztę funkcji, bo pewnie też kryją podobne kwiatki. Rozumiem też w takim razie, że jeżeli postform i commentform powtarzają się w innych widokach to też trzeba je do osobnej funkcji wyrzucić. Jak już tu wszystko zrobię to spróbuję jakiś prosty projekcik, żeby zobaczyć jak dokładnie działają te CBV.
jeżeli postform i commentform powtarzają się w innych widokach to też trzeba je do osobnej funkcji wyrzucić


@KiedysBedeProgramista: Niekoniecznie wiem co masz na myśli? Jeżeli chodzi o samo inicjowanie tych formularzy to bym sobie darował. Jedynie unikałbym sytuacji gdzie 1. tworzysz formularz 2. walidujesz go 3. na widoku ustawiasz pola na modelu stworzonym z formularza.