Der wichtigste Vorteil ist die Vererbung. Bei einem großen Projekt wird es wahrscheinlich viele ähnliche Ansichten geben. Anstatt denselben Code immer wieder zu schreiben, können Sie Ihre Ansichten einfach von einer Basisansicht erben lassen.
Auch Django wird mit einer Sammlung generischer Ansichtsklassen geliefert, die für einige der häufigsten Aufgaben verwendet werden können. Mit der DetailView-Klasse wird beispielsweise ein einzelnes Objekt von einem Ihrer Modelle übergeben, mit einer Vorlage gerendert und die HTTP-Antwort zurückgegeben. Sie können es Stecker gerade in Ihre URL conf ..
url(r'^author/(?P<pk>\d+)/$', DetailView.as_view(model=Author)),
Oder Sie es mit benutzerdefinierten Funktionen
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
nun Ihre Vorlage zum Rendern einer Sammlung von Buchobjekten werden weitergegeben erstrecken.
Ein schöner Ort, um damit zu beginnen, ist eine gute Lesung der docs.
aktualisieren
ccbv.co.uk hat umfassende und einfach Informationen über die Klasse basierte Ansichten haben Sie bereits zur Verfügung zu verwenden.
"Die meisten Entwickler"? "Ja wirklich?" Ich bezweifle das eher. Persönlich, während ich erkenne, dass CBVs in einer Situation gut sind, benutze ich sie fast nie. –
Ja, das ist in dem Buch, das ich gelesen habe, aber das weiß ich nicht. Ich mag FBVs sehr gerne als CBVs. – catherine
@DanielRoseman wenn Daniel CBV nicht verwendet, stoppe ich jetzt sorgen über nicht zu wissen und nicht mit cbv .. – doniyor