Skip to main content

Add warnings to your Django Forms easily

Project description

https://badge.fury.io/py/dj-warning-forms.svg https://travis-ci.org/dnmellen/dj-warning-forms.svg?branch=master https://codecov.io/gh/dnmellen/dj-warning-forms/branch/master/graph/badge.svg

Add warnings to your Django Forms easily

https://github.com/dnmellen/dj-warning-forms/blob/master/docs/demo.gif?raw=true

Documentation

The full documentation is at https://dj-warning-forms.readthedocs.io.

Quickstart

Install Django Warning Forms:

pip install dj-warning-forms

Use the form mixin in any form

from django import forms
from dj_warning_forms.forms import WarningFormMixin, FormFieldWarning

from .models import Poll


class PollForm(WarningFormMixin, forms.ModelForm):
    question = forms.CharField(
        max_length=200, widget=forms.TextInput(attrs={"autocomplete": "off"})
    )

    class Meta:
        model = Poll
        fields = "__all__"

    def warning_question(self) -> List[FormFieldWarning]:
        if not self.cleaned_data["question"].endswith("?"):
            return [
                FormFieldWarning(
                    message="Weird question",
                    description="This question does not end with a question mark. Are you sure you want to publish this question?",  # noqa
                )
            ]
        return []

Adding a warning is as simple as adding a method with the warning_ prefix. This method must return a list of FormFieldWarning objects.

Showing warnings in the template

You can find the list of warnings in form.warnings.

{% block content %}
<form action="." method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="Submit">

    <!-- Customize your form warnings as you wish -->
    {% if form.warnings %}
        <div class="rounded p-2 mt-2 bg-warning">
            <ul>
            {% for warning in form.warnings %}
                <li><b>{{ warning.message }}:</b> {{ warning.description }}</li>
            {% endfor %}
            </ul>
        </div>
    {% endif %}
    <!-- End of form warnings -->
</form>
{% endblock %}

Features

  • No external dependencies

  • Minimal changes needed in your forms

  • Easy to customize

Running Tests

Does the code actually work?

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox

Development commands

pip install -r requirements_dev.txt
invoke -l

Credits

Tools used in rendering this package:

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

dj-warning-forms-0.1.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

dj_warning_forms-0.1.0-py2.py3-none-any.whl (6.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file dj-warning-forms-0.1.0.tar.gz.

File metadata

  • Download URL: dj-warning-forms-0.1.0.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for dj-warning-forms-0.1.0.tar.gz
Algorithm Hash digest
SHA256 543fa51ac63d87b42715419bd46561833f00aa67540413b2409478e4dfbe9702
MD5 0956933babb82a32f33b0540dedc6311
BLAKE2b-256 1b0fdf9c1fca091ba49914bf4857542da810c10cb88f5fda273b70bfbe9abf2f

See more details on using hashes here.

File details

Details for the file dj_warning_forms-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: dj_warning_forms-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for dj_warning_forms-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c11cbd8205c7185603fd0fe2741a13ddb278416b0bf05708ca4222715cddbafc
MD5 4f6a22fcfb54557fbc3147682924863c
BLAKE2b-256 4933daa453f629bc52ceb6286a47f8c222fe209b62dc49795cc4d0b622c7c81a

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