2016-04-09 18 views
4

Django FormView ile CreateView arasındaki fark nedir?Django FormView vs CreateView

Sadece farkla görüyorum, FormView ModelForm gerektirir ancak CreateView yapmıyor. Aksi takdirde, her ikisi de bir nesne oluştururken aynı şeyi yapar. Django-Dokümanlar

cevap

4

:

FormView:

bir form görüntüleyen bir görünüm. Hata durumunda, formu doğrulama hatalarıyla yeniden görüntüler; başarıda, yeni bir URL'ye yönlendirir.

Çeşitli amaçlarla kullanılabilir ve nesne oluşturmaya kısıtlı değildir. Güzel bir örnek, bir iletişim formu olarak kullanıyor vekayıtlarına kayıtlarını veritabanında oluşturarak e-postalarını gönderiyordu.

CreateView

:

, bir nesne oluşturma (eğer varsa) doğrulama hataları ile formu yeniden görüntüleme ve nesneyi kaydetmek için bir form görüntüleyen bir görünüşüdür.

Bu genel görünümün amacı, nesne oluşturmaktır. Ama nesneler yaratmakla sınırlı değil. senin FormView modeli nesneleri oluşturursa Bunu jenerik görünümleri tekrarını azaltır bunun için var, bir modelform oluşturarak CreateView değil kullanmak en iyisidir,

(sadece FormView gibi) çok bu görünümden e-posta gönderebilirsiniz.

+0

En iyi seçim konusunda hemfikir olmayın, örneğin çoğu zaman tüm model alanlarını görüntülemek istemiyoruz. –

+0

, daha sonra sadece "fields" özelliğini kullanarak görüntülemek istediğiniz model alanlarını dahil edebilirsiniz. – v1k45

+0

Örneğin, iki modelin birleşimi gibi ek alan (lar) bulundurmaya ne dersiniz, başkaları da dava kullanıyor. –

İlgili konular