Skip to main content

A Django app to handle un-authenticated user enquiries.

Project description

A Django app to facilitate website ‘contact us’ functionality.

Detailed documentation is in the “docs” directory.

Quick start

  1. Add "contact_us_tools" to your INSTALLED_APPS setting:

    INSTALLED_APPS = [
        # ...,
        "contact_us_tools",
    ]
  2. Set up the necessary settings for sending emails. For example, if gmail is your chosen host:

    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = 'smtp.gmail.com'
    EMAIL_USE_TLS = True
    EMAIL_PORT = 587
    EMAIL_HOST_USER = "example@gmail.com"
    EMAIL_HOST_PASSWORD = "exmample"

    See the django documentation https://docs.djangoproject.com/en/5.2/topics/email/#email-backends

  3. Extend the BaseMessage model and set the BUSINESS_NAME and COPYRIGHT_YEAR attributes:

    from contact_us_tools.models import AbstractBaseMessage
    
    class Message(AbstractBaseMessage):
        BUSINESS_NAME = "My Business Name"
        COPYRIGHT_YEAR = 2025

    BUSINESS_NAME is your business or website name to be displayed in the automatic-reply email and COPYRIGHT_YEAR is the year to be displayed with the copyright notice in the email.

    For further configuration of the BaseMessage model, consult the docs https://django-contact-us-tools.readthedocs.io/en/latest/index.html.

  4. Register the new model to your admit site:

    from django.contrib import admin
    admin.site.register(Message)
  5. Create a new form or extend BaseContactUsForm and add the model attribute to the Meta class:

    from contact_us_tools.forms import BaseContactUsForm
    
    class ContactUsForm(BaseContactUsForm):
       class Meta(BaseContactUsForm.Meta):
          model = Message
  6. Create a html template for the ‘contact us’ form. For example:

    <form action="" method="POST">
        {% csrf_token %}
    
        <legend>Contact Us</legend>
        <small>Got any questions? Fill out this form to reach out.</small>
    
        {{ form }}
    
        <button type="submit">Submit</button>
    </form>
  7. Extend BaseContactUsView, making sure to overwrite form_class and template_name with the form and html template you just created, as well as supplying a success url:

    from django.urls import reverse
    from contact_us_tools.views import BaseContactUsView
    
    class ContactUsView(BaseContactUsView):
        form_class = ContactUsForm
        template_name = 'template_name'
    
        def get_success_url(self):
            return reverse('success_url_name')

    For further configuration of BaseContactUsView, consult the docs https://django-contact-us-tools.readthedocs.io/en/latest/index.html.

  8. Add a URL pattern to handle the rendering of the form:

    urlpatterns = [
        # ...,
        path('contact-us', ContactUsView.as_view(), name='contact-us'),
    ]
  9. Run python manage.py makemigrations then python manage.py migrate to create the models.

  10. Start the development server and visit the relevant url to test the ‘contact us’ form.

  11. Visit the admin site to view the resulting addition to the relevant database table.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_contact_us_tools-0.1.1.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_contact_us_tools-0.1.1-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file django_contact_us_tools-0.1.1.tar.gz.

File metadata

  • Download URL: django_contact_us_tools-0.1.1.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for django_contact_us_tools-0.1.1.tar.gz
Algorithm Hash digest
SHA256 94f14c743b52d6cb21cef6242ee2ee7980fe8f14c42b54ed6897d22003e8d812
MD5 b8bb00dda5493f1335a7822073ef646b
BLAKE2b-256 9ffe778d7963bd8a1794b9fb1a6f9e2cb2154c4b5ded619884b12963f0c946a8

See more details on using hashes here.

File details

Details for the file django_contact_us_tools-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_contact_us_tools-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f48f4b716368a0e6dd611b525195b55455dad197db19767561afbf2503ab5ddf
MD5 4c0349243529922c8e08c04c2f43961f
BLAKE2b-256 3e9a83a3a56bf1a2e9eb360a76f10f4b2ae5e57aeaf6567a95b6835b1db0a87e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page