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.2.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.2-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_contact_us_tools-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 9959a5cec0270fb9dc55c8aba94afedab3902b0000241254df583a4d3b5bee41
MD5 2eb841481c5ba4a91bbcd52407bc7e4b
BLAKE2b-256 770d5369584ea5d0ecaff617c1fdb2343df55baa86b3b599a56c9ff8f52c3a97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_contact_us_tools-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5dabf2a9eb27fa580c431eb77328df91896047d3693ec8b58144ea8232d5eb55
MD5 bc412abba3c67bb852559e176abad47e
BLAKE2b-256 9ac65803713557e5bf1e413633c9b9cd867937de8a8c1141f59e2b470b073480

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