Skip to content
Back to top
View this page

# Built-in views

class django_contact_form.views.ContactFormView(**kwargs)

  The base view class from which most custom contact-form views should inherit. If you don’t need any custom functionality, and are content with the default `ContactForm` class, you can also use it as-is (and the provided URLConf, `django_contact_form.urls`, does exactly this).

  This is a subclass of Django’s `FormView`, so refer to the Django documentation for a list of attributes/methods which can be overridden to customize behavior.

  One non-standard attribute is defined here:

  recipient_list

    The list of email addresses to send mail to. If not specified, defaults to the `recipient_list` of the form.

  Additionally, the following standard (from `FormView`) attributes are commonly useful to override (all attributes below can also be passed to `as_view()` in the URLconf, permitting customization without the need to write a full custom subclass of `ContactFormView`). Each of these can be supplied as an attribute, or as a method with the name prefixed with `get_` (for example, a `get_form_class()` method instead of a `form_class` attribute):

  form_class

    The form class to use. By default, will be `ContactForm`.

  template_name

    A `str`, the template to use when rendering the form. By default, will be `django_contact_form/contact_form.html`.

  success_url

    The URL to redirect to after successful form submission. Can be a hard-coded string, the string resulting from calling Django’s `reverse()` helper, or the lazy object produced by Django’s `reverse_lazy()` helper. Default value is the result of calling `reverse_lazy()` with the URL name `"django_contact_form_sent"`.

  You can also override the following method for full customization of the form instance construction:

  get_form_kwargs() → dict

    Return additional keyword arguments (as a dictionary) to pass to the form class on initialization.

    By default, this will return a dictionary containing the current `HttpRequest` (as the key `request`) and, if `recipient_list` was defined, its value (as the key `recipient_list`).

    Warning

    Request is a required argument

    If you override `get_form_kwargs()`, you must ensure that, at the very least, the keyword argument `request` is still provided, or `ContactForm` initialization will raise `TypeError`. The easiest approach is to use `super` to call the base implementation in `ContactFormView`, and modify the dictionary it returns.