Jedną z najważniejszych zalet jest dziedziczenie. W przypadku dużego projektu prawdopodobnie będziesz miał wiele podobnych wyświetleń. Zamiast pisać ten sam kod raz za razem, możesz po prostu mieć swoje widoki dziedziczące z widoku podstawowego.
Również statki django z kolekcją ogólnych klas widoku, które mogą być używane do wykonywania najczęstszych zadań. Na przykład klasa DetailView służy do przekazywania pojedynczego obiektu z jednego z modeli, renderowania go za pomocą szablonu i zwracania odpowiedzi http. można go podłączyć bezpośrednio do adresu URL konf ..
url(r'^author/(?P<pk>\d+)/$', DetailView.as_view(model=Author)),
Albo można przedłużyć go z niestandardowych funkcjonalności
class SpecialDetailView(DetailView):
model = Author
def get_context_data(self, *args, **kwargs):
context = super(SpecialDetailView, self).get_context_data(*args, **kwargs)
context['books'] = Book.objects.filter(popular=True)
return context
Teraz szablon zostanie przekazany zbiór obiektów książkowych dla renderowania.
To miłe miejsce na początek to jest posiadanie dobrego odczytu z docs.
Aktualizacja
ccbv.co.uk ma wszechstronny i łatwy w użyciu informacji o widokach klasy oparte już masz dostępne.
"Większość programistów"? Naprawdę? Wątpię w to. Osobiście, choć zdaję sobie sprawę, że w niektórych sytuacjach CBV są dobre, prawie nigdy ich nie używam. –
Tak, co jest powiedziane w książce, którą czytam, ale nie wiem o tym. Bardzo lubię używać FBV niż CBV. – catherine
@ DanielRoseman, jeśli Daniel nie używa cbv, zatrzymuję się teraz martwiąc się o niewiedzę i nie używając cbv .. – doniyor