From Django-docs:
FormView :
The view that displays the form. On error, redisplays a form with error validation; on success, redirects to the new URL.
It can be used for various purposes and is not limited to creating objects. A good example would be to use it in the form of a contact form and send letters without creating entries in the database.
CreateView :
A view that displays a form for creating an object, redrawing the form with validation errors (if any) and saving the object.
The sole purpose of this general view is to create objects. But this is not limited to creating objects. You can also send emails from this view (like FormView)
If your FormView creates model objects, it is better to use CreateView , rather than creating a model form, which uses common views, which reduces repetition.
source share