Bootstrap 4 integration with Django.

Overview

django-bootstrap 4

CI Coverage Status Latest PyPI version Any color you like

Bootstrap 4 integration for Django.

Goal

The goal of this project is to seamlessly blend Django and Bootstrap 4.

Requirements

Python 3.6 or newer with Django >= 2.2 or newer.

Documentation

The full documentation is at https://django-bootstrap4.readthedocs.io/

Installation

  1. Install using pip:

    pip install django-bootstrap4

    Alternatively, you can install download or clone this repo and call pip install -e ..

  2. Add to INSTALLED_APPS in your settings.py:

    INSTALLED_APPS = (
        # ...
        "bootstrap4",
        # ...
    )
  3. In your templates, load the bootstrap4 library and use the bootstrap_* tags:

Example template

{% load bootstrap4 %}

{# Display a form #}

<form action="/url/to/submit/" method="post" class="form">
    {% csrf_token %}
    {% bootstrap_form form %}
    {% buttons %}
        <button type="submit" class="btn btn-primary">Submit</button>
    {% endbuttons %}
</form>

Demo

A demo app is provided in demo. You can run it from your virtualenv with python manage.py runserver.

Bugs and suggestions

If you have found a bug or if you have a request for additional functionality, please use the issue tracker on GitHub.

https://github.com/zostera/django-bootstrap4/issues

License

You can use this under BSD-3-Clause. See LICENSE file for details.

Author

Developed and maintained by Zostera.

Original author: Dylan Verheul.

Thanks to everybody that has contributed pull requests, ideas, issues, comments and kind words.

Please see AUTHORS.md for a list of contributors.

Comments
  • Upgrade To Bootstrap 5

    Upgrade To Bootstrap 5

    https://v5.getbootstrap.com/

    https://github.com/twbs/bootstrap/projects

    Better to start early then to wait till the last minute.

    Probably need to rename this package when fully upgraded or make another branch.

    opened by 9mido 12
  • Updated CSS/JavaScript URLs to newer versions.

    Updated CSS/JavaScript URLs to newer versions.

    These reflect the newest versions shown on the Bootstrap website.

    I suspect folks would prefer to be on newer versions of these libraries. However, I can see how you might prefer to have users take these updates via settings updates instead.

    Updated links were all sourced from here. The cdnjs website provides the SHA values using the 512 algorithm (instead of 384) which is maybe better?

    Instead of the URLs coming from different CDNs they now all use Cloudflare (which never goes down, right? 😛).

    TESTING:

    • I tried the template tags out with these changes and didn't notice any errors in the inspector.
    opened by emmceemoore 10
  • Feature request: Allow to skip label from field completely

    Feature request: Allow to skip label from field completely

    {% bootstrap_field field show_label=False %}
    

    currently still renders the label, but with class="sr-only". This is great for most cases, but it is actually a bad idea if the users manually adds the label separately. In that case, both labels will be associated with the form field and the computed aria-label will be "{label} {label}".

    opened by xi 9
  • Setting base_url is not used

    Setting base_url is not used

    I tried to change the used bootstrap4 version. So I added to following dict to the settings.py:

    BOOTSTRAP4 = { # The Bootstrap base URL 'base_url': '//maxcdn.bootstrapcdn.com/bootstrap/4.1.3/', }

    But the tag {% bootstrap_css %} still includes version 4.0.0:

    <link crossorigin="anonymous" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" rel="stylesheet">

    bug 
    opened by pacnos 8
  • Show field errors at the field, rather than at the top

    Show field errors at the field, rather than at the top

    I'd like to show field errors at the field, instead of at the top of the form. (In horizontal mode, if it matters).

    I've looked at the source for FormRendered a bit but it doesn't seem there's a way to do this, is there?

    bug 
    opened by mverleg 8
  • Tags for including Bootstrap4

    Tags for including Bootstrap4

    I'm thinking of removing the template tags for inclusion of JS and CSS. When using local source/dist a dev should know what to include, may use webpack or another tool to combine static files, et cetera. So the only viable use case for including through tags would be CDN. This would burden us with keeping up with Bootstrap releases to adjust CDN URL's and signatures.

    Any input on this matter?

    bug help wanted good first issue 
    opened by dyve 8
  • Incorrect rendering of form with radio buttons

    Incorrect rendering of form with radio buttons

    I tried to create a simple form with 2 radio buttons and the buttons are rendered side by side horizontally. Would have expected that the radio buttons would be vertically stacked by default (as this is the bootstrap 4 default according to docs, see url below).

    view/form:

    from django.views.generic import FormView
    
    class TestForm(forms.Form):
        OPTIONS = (('1', 'Yes'), ('0', 'No'))
        
        options = forms.ChoiceField(
            label="Simple form",
            choices=OPTIONS,
            widget=forms.RadioSelect)
    
    class Index(FormView):
        template_name = 'index.html'
        form_class = TestForm
    

    template index.html:

    {% load bootstrap4 %}
    
    {# Load CSS and JavaScript #}
    {% bootstrap_css %}
    {% bootstrap_javascript jquery='full' %}
    
    {# Display django.contrib.messages as Bootstrap alerts #}
    {% bootstrap_messages %}
    
    {# Display a form #}
    <form action="/url/to/submit/" method="post" class="form">
      {% csrf_token %}
      {% bootstrap_form form %}
      {% buttons %}
        <button type="submit" class="btn btn-primary">
          Submit
        </button>
      {% endbuttons %}
    </form>
    

    result:

    Simple form
    ( ) Yes  ( ) No
    [Submit]
    

    expected result:

    Simple form
    ( ) Yes 
    ( ) No
    [Submit]
    

    The form part of the generated HTML looks something like this:

    <form action="/url/to/submit/" method="post" class="form">
      <div class="form-group">
        <label for="id_options_0">Simple form</label>
        <div class="radio radio-success" id="id_options">
          <label for="id_options_0">
            <input type="radio" name="options" value="1" class="" title="" required="" id="id_options_0"> Yes
          </label>
          <label for="id_options_1">
            <input type="radio" name="options" value="0" class="" title="" required="" id="id_options_1"> No
          </label>
        </div>
      </div>
      <div class="form-group">
        <button type="submit" class="btn btn-primary">
          Submit
        </button>
      </div>
    </form>
    

    Looking at the bootstrap 4 documentation it looks like each radio button should be placed inside a div with the class form-check to get the default stacked layout.

    Furthermore i cannot find any references to the classes radio and radio-success in bootstrap 4, these 2 are added in post_widget_render for RadioSelect.

    After browsing through the django-bootstrap4 code quickly i found def radio_list_to_class(self, html, klass) which maps <li> and </li> to empty string. If the radio buttons really are supposed to be inside a div with class form-check then we should probably change the mapping to look like this

    mapping = [
                ("<ul", '<div class="{klass}"'.format(klass=classes)),
                ("</ul>", "</div>"),
                ("<li>", '<div class="form-check">'),
                ("</li>", "</div>"),
            ]
    

    Trying this locally at least I get the default stacked layout that I expected, but I'm not sure if this will break some other layout. Or am I missing some other parameter here which can solve the initial problem?

    opened by parander 7
  • Unable to run Demo app

    Unable to run Demo app

    PS C:\Users\user\Downloads\django-bootstrap4-master\django-bootstrap4-master\demo> python manage.py runserver Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x060BFE88> Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper fn(*args, **kwargs) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\commands\runserver.py", line 112, in inner_run autoreload.raise_last_exception() File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\autoreload.py", line 248, in raise_last_exception raise _exception[1] File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 327, in execute autoreload.check_errors(django.setup)() File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper fn(*args, **kwargs) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\apps\registry.py", line 89, in populate app_config = AppConfig.create(entry) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\apps\config.py", line 90, in create module = import_module(entry) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked ModuleNotFoundError: No module named 'tests'

    opened by schwarcu 7
  • field errors are not shown

    field errors are not shown

    Hello if render fields separatelly from the main form, field errors under the fields after false valdation arent shown. If render form as a whole - everything is fine.

    html:

                        <div class = "offset-1 col-4" >
                            {% bootstrap_field form1.last_year layout='inline' size="small" form_group_class="" label_class="form-label col-md-3"  %}
                            <small class="form-text text-muted">{{ form1.last_year.help_text }}</small>
                        </div>
    

    Should i use special div classes to swith it on maybe? Fields are marked in green and red according True/false validation -thats fine, but no error texts are shown under the field. Main errors panel above the whole form displays them

    Thank you

    opened by AlekseiKhatkevich 6
  • Is there an option to mark a form as not required? If no: Add one

    Is there an option to mark a form as not required? If no: Add one

    I have an html form that consists of multiple model forms. Not all of the forms need to be filled out by the user. Thus i would like to make it so that the forms that are not required only cause errors to be displayed if they are filled out partially in an invalid way.

    To give a more concrete example: I have a form for creating a new customer object in the database. This object represents a company. It may have a contact person associated with it.

    For the data of the customer object itself i use a django ModelForm like this:

    class NewCustomerForm(ModelForm):
        class Meta:
            model = Customer
            fields = [
                'customer_id',
                'name',
                'discount_special',
                'provision',
                'reseller',
                'tax_id_number',
                ]
    

    notice that there are no fields for the contact person there, because for that i have another ModelForm:

    class ContactForm(ModelForm):
        class Meta:
            model = Contact
            fields = [
                'name',
                'email',
                'phone',
                ]
    

    I do not need information about the contact person to create a customer object, but in the template i use to render these I treat them as one big html-<form>-tag so all the information gets submitted with at the same time. It works fine if every field is filled out with valid data. If the fields of the contact person are fully empty, I would like to just create the customer object. For that i need the client-side validation to allow submitting the whole html-form even though the part for the contact person is empty. Currently it seems like i need to write some custom JS to achieve that.

    I would really like if there was a parameter like this to specify that the form as a whole may be empty (or invalid):

    {% bootstrap_form contact required=False %}
    

    Is there a parameter that works like this?

    P.S.: This issue aside i think that django-bootstrap4 works pretty well for me, so GOOD JOB!

    EDIT: Make the wording more precise

    opened by SvenMoenig 6
  • fix rendering of checkbox

    fix rendering of checkbox

    Hi,

    Currently checkboxes are still rendered in the Bootstrap 3 way: the checkbox input is rendered within the checkbox label. Because of changes in the way checkboxes are handled in Bootstrap 4, checkboxes rendered like this, don't work in Bootstrap 4 compatible themes.

    This pull request changes the rendering to the Bootstrap 4 way.

    opened by SanderTuit 6
  • Bump tox from 3.27.1 to 4.2.1

    Bump tox from 3.27.1 to 4.2.1

    Bumps tox from 3.27.1 to 4.2.1.

    Release notes

    Sourced from tox's releases.

    4.2.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/tox-dev/tox/compare/4.2.0...4.2.1

    4.2.0

    What's Changed

    Full Changelog: https://github.com/tox-dev/tox/compare/4.1.3...4.2.0

    4.1.3

    What's Changed

    Full Changelog: https://github.com/tox-dev/tox/compare/4.1.2...4.1.3

    4.1.2

    What's Changed

    Full Changelog: https://github.com/tox-dev/tox/compare/4.1.1...4.1.2

    4.1.1

    What's Changed

    Full Changelog: https://github.com/tox-dev/tox/compare/4.1.0...4.1.1

    4.1.0

    What's Changed

    ... (truncated)

    Changelog

    Sourced from tox's changelog.

    v4.2.1 (2023-01-03)

    Bugfixes - 4.2.1

    - Fix extracting extras from markers with more than 2 extras in an or chain - by :user:`dconathan`. (:issue:`2791`)
    

    v4.2.0 (2023-01-03)

    Features - 4.2.0

    • Packaging environments now inherit from the pkgenv section, allowing to set all your packaging options in one place, and support the deps key to set additional dependencies that will be installed after pyproject.toml static requires but before backends dynamic requires - by :user:gaborbernat. (:issue:2543)

    Improved Documentation - 4.2.0

    - Document breaking changes with tox 4 and packaging environments - by :user:`gaborbernat`. (:issue:`2543`)
    - Document how to handle environments whose names match ``tox`` subcommands - by :user:`sirosen`. (:issue:`2728`)
    

    v4.1.3 (2023-01-02)

    Bugfixes - 4.1.3

    - Reuse package_env with ``--installpkg`` - by :user:`q0w`. (:issue:`2442`)
    - Fail more gracefully when pip :ref:`install_command` is empty - by :user:`jayaddison`. (:issue:`2695`)
    

    Improved Documentation - 4.1.3 </code></pre> <ul> <li>Add breaking-change documentation for empty <code>install_command</code> values - by :user:<code>jayaddison</code>. (:issue:<code>2695</code>)</li> </ul> <p>Misc - 4.1.3</p> <pre><code>- :issue:2796, :issue:2797

    v4.1.2 (2022-12-30)

    Bugfixes - 4.1.2 </code></pre> <ul> <li>Fix <code>--skip-missing-interpreters</code> behaviour - by :user:<code>q0w</code>. (:issue:<code>2649</code>)</li> <li>Restore tox 3 behaviour of showing the output of pip freeze, however now only active when running inside a CI environment - by :user:<code>gaborbernat</code>. (:issue:<code>2685</code>)</li> <li>Fix extracting extras from markers with many extras - by :user:<code>q0w</code>. (:issue:<code>2791</code>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary>

    <ul> <li><a href="https://github.com/tox-dev/tox/commit/43382af3a228c4dfc098ec50e136971553ee0035"><code>43382af</code></a> release 4.2.1</li> <li><a href="https://github.com/tox-dev/tox/commit/4578eaa45fe5f5f80f08754627be8f4376cf3a97"><code>4578eaa</code></a> update how extras are extracted to handle cases with more than 2 groups (<a href="https://github-redirect.dependabot.com/tox-dev/tox/issues/2812">#2812</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/27c52ec2b77647374b7ff4a82244f0ff489d1afc"><code>27c52ec</code></a> Update upgrading.rst</li> <li><a href="https://github.com/tox-dev/tox/commit/2e977fb97a60129eee6764fcf0a4c86e01ceabee"><code>2e977fb</code></a> Update changelog.rst</li> <li><a href="https://github.com/tox-dev/tox/commit/d16a666ae31c2fd6d8204c39498758cc529167a3"><code>d16a666</code></a> release 4.2.0</li> <li><a href="https://github.com/tox-dev/tox/commit/82dcd45af55af239a7be81ee2e86948c6fe75518"><code>82dcd45</code></a> Packaging inherits from pkgenv, deps and document tox 4 packaging changes (<a href="https://github-redirect.dependabot.com/tox-dev/tox/issues/2">#2</a>...</li> <li><a href="https://github.com/tox-dev/tox/commit/31c8d1fc48ccf95f66b2920b356f9490686ccfc7"><code>31c8d1f</code></a> Document ambiguous usages in v3-to-v4 (<a href="https://github-redirect.dependabot.com/tox-dev/tox/issues/2808">#2808</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/031e902822284d65cbeb11b23dd05e6ba5107961"><code>031e902</code></a> Introduce Upgrading doc page for tox4 (<a href="https://github-redirect.dependabot.com/tox-dev/tox/issues/2805">#2805</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/d05ea02b7344766be3eb8046bac8843e10cf43a8"><code>d05ea02</code></a> release 4.1.3</li> <li><a href="https://github.com/tox-dev/tox/commit/997128ced47936adabb2f267d2606f8eac253ad3"><code>997128c</code></a> Better message when command parsing on empty input (<a href="https://github-redirect.dependabot.com/tox-dev/tox/issues/2807">#2807</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tox-dev/tox/compare/3.27.1...4.2.1">compare view</a></li> </ul> </details>

    <br />

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Bump docformatter from 1.5.0 to 1.5.1

    Bump docformatter from 1.5.0 to 1.5.1

    Bumps docformatter from 1.5.0 to 1.5.1.

    Changelog

    Sourced from docformatter's changelog.

    v1.5.1 (2022-12-16)

    Full Changelog

    Bug Fixes

    Merged pull requests:

    Commits
    • c7ee0f3 Fix incorrect pyproject.toml parsing of boolean values (#133)
    • d81298b Update AUTHORS.rst file with new author(s)
    • 682a09d No empty lines before class and method docstrings (#131)
    • 3b73dc5 chore: update CI workflow so 3.6 still runs (#132)
    • d369613 Update AUTHORS.rst file with new author(s)
    • d9a3b61 Allow showing the diff when using --in-place or --check with --diff (#128)
    • 1def3c4 chore: move script to src layout and make a package (#117)
    • fef89ad feat: format class attribute docstrings (#116)
    • 9c18ed4 fix: don't wrap URLs (#115)
    • 214a0cd release: v1.5.0 (#114)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Bump autoflake from 1.7.8 to 2.0.0

    Bump autoflake from 1.7.8 to 2.0.0

    Bumps autoflake from 1.7.8 to 2.0.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Bump flake8 from 5.0.4 to 6.0.0

    Bump flake8 from 5.0.4 to 6.0.0

    Bumps flake8 from 5.0.4 to 6.0.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Fix two issues:

    Fix two issues:

    • Append/prepend attributes not appearing at all
    • Validation feedback not appearing inside the input-group, and help text not appearing immediately after the input-group
    opened by tg-bot543 1
Releases(v3.0.1)
  • v3.0.1(May 20, 2021)

  • v1.1.0(Dec 9, 2019)

    • Update default Bootstrap to v4.3.1
    • Add support for Python 3.8, Django 3 and Django master
    • Switch to Django manage.py for test running
    • Update Makefile commands
    • Update tox configuration
    • Use correct license (BSD-3-Clause)
    • Fix typo's in docstrings
    • Update Travis configuration
    • Drop MANIFEST.in, use setuptools_scm
    • Stop using _version.py, use git tags for versioning
    • Fixed issues with labels and input (#174 and #181)
    Source code(tar.gz)
    Source code(zip)
Store model history and view/revert changes from admin site.

django-simple-history django-simple-history stores Django model state on every create/update/delete. This app supports the following combinations of D

Jazzband 1.8k Jan 08, 2023
A prettier way to see Django requests while developing

A prettier way to see Django requests while developing

Adam Hill 35 Dec 02, 2022
This Django app will be used to host Source.Python plugins, sub-plugins, and custom packages.

Source.Python Project Manager This Django app will be used to host Source.Python plugins, sub-plugins, and custom packages. Want to help develop this

2 Sep 24, 2022
Packs a bunch of smaller CSS files together from 1 folder.

Packs a bunch of smaller CSS files together from 1 folder.

1 Dec 09, 2021
Full-featured django project start tool.

django-start-tool Introduction django-start-tool is a full-featured replacement for django-admin startproject which provides cli for creating the same

Georgy Gnezdilov 0 Aug 30, 2022
A handy tool for generating Django-based backend projects without coding. On the other hand, it is a code generator of the Django framework.

Django Sage Painless The django-sage-painless is a valuable package based on Django Web Framework & Django Rest Framework for high-level and rapid web

sageteam 51 Sep 15, 2022
Django admin CKEditor integration.

Django CKEditor NOTICE: django-ckeditor 5 has backward incompatible code moves against 4.5.1. File upload support has been moved to ckeditor_uploader.

2.2k Jan 02, 2023
Docker django app

Hmmmmm... What I should write here? Maybe "Hello World". Hello World Build Docker compose: sudo docker-compose build Run Docker compose: sudo docker-

Andrew 0 Nov 10, 2022
Ugly single sign-on for django projects only

django-usso Ugly single sign-on for django projects only. Do you have many django apps with different users? Do you want to use only one of those apps

Erwin Feser 1 Mar 01, 2022
Awesome Django Markdown Editor, supported for Bootstrap & Semantic-UI

martor Martor is a Markdown Editor plugin for Django, supported for Bootstrap & Semantic-UI. Features Live Preview Integrated with Ace Editor Supporte

659 Jan 04, 2023
Utilities to make function-based views cleaner, more efficient, and better tasting.

django-fbv Utilities to make Django function-based views cleaner, more efficient, and better tasting. 💥 📖 Complete documentation: https://django-fbv

Adam Hill 49 Dec 30, 2022
Code coverage measurement for Python

Coverage.py Code coverage testing for Python. Coverage.py measures code coverage, typically during test execution. It uses the code analysis tools and

Ned Batchelder 2.3k Jan 05, 2023
Django server-side adapter for Inertia.js

django-inertia Django server-side new adapter for Inertia.js. Getting Started Install the package pip install django-inertia Configure your project A

Samuel Girardin 14 Sep 16, 2022
Money fields for Django forms and models.

django-money A little Django app that uses py-moneyed to add support for Money fields in your models and forms. Django versions supported: 1.11, 2.1,

1.4k Jan 06, 2023
Django application and library for importing and exporting data with admin integration.

django-import-export django-import-export is a Django application and library for importing and exporting data with included admin integration. Featur

2.6k Dec 26, 2022
Modular search for Django

Haystack author: Daniel Lindsley date: 2013/07/28 Haystack provides modular search for Django. It features a unified, familiar API that allows you to

Daniel Lindsley 4 Dec 23, 2022
A beginner django project and also my first Django project which involves shortening of a longer URL into a short one using a unique id.

Django-URL-Shortener A beginner django project and also my first Django project which involves shortening of a longer URL into a short one using a uni

Rohini Rao 3 Aug 08, 2021
Django/Jinja template indenter

DjHTML A pure-Python Django/Jinja template indenter without dependencies. DjHTML is a fully automatic template indenter that works with mixed HTML/CSS

Return to the Source 378 Jan 01, 2023
Exemplo de biblioteca com Django

Bookstore Exemplo de biblioteca feito com Django. Este projeto foi feito com: Python 3.9.7 Django 3.2.8 Django Rest Framework 3.12.4 Bootstrap 4.0 Vue

Regis Santos 1 Oct 28, 2021
Official Python agent for the Elastic APM

elastic-apm -- Elastic APM agent for Python This is the official Python module for Elastic APM. It provides full out-of-the-box support for many of th

elastic 369 Jan 05, 2023