# Comment form classes

The `django_comments.forms` module contains a handful of forms you’ll use when writing custom views dealing with comments, or when writing custom comment apps.

class django_comments.forms.CommentForm

  The main comment form representing the standard way of handling submitted comments. This is the class used by all the views `django_comments` to handle submitted comments.

  If you want to build custom views that are similar to django_comment’s built-in comment handling views, you’ll probably want to use this form.

## Abstract comment forms for custom comment apps

If you’re building a custom comment app, you might want to replace some of the form logic but still rely on parts of the existing form.

`CommentForm` is actually composed of a couple of abstract base class forms that you can subclass to reuse pieces of the form handling logic:

class django_comments.forms.CommentSecurityForm

  Handles the anti-spoofing protection aspects of the comment form handling.

  This class contains the `content_type` and `object_pk` fields pointing to the object the comment is attached to, along with a `timestamp` and a `security_hash` of all the form data. Together, the timestamp and the security hash ensure that spammers can’t “replay” form submissions and flood you with comments.

class django_comments.forms.CommentDetailsForm

  Handles the details of the comment itself.

  This class contains the `name`, `email`, `url`, and the `comment` field itself, along with the associated validation logic.