Skip to main content

A Django template tag that combines the functionality of 'with' and 'if'.

Project description

django-whiff

django-whiff is a simple Django template tag that combines the functionality of the with and if tags, inspired by the Python walrus operator (:=). It allows you to assign a variable and immediately check if it is truthy, rendering content if it is.

Example

{% load whiff %}

  {% whiff current_user as user %}
    <h1>Welcome back, {{ user.first_name }} {{ user.last_name }}!</h1>
    <p>Your last login was on {{ user.last_login|date:"F j, Y, g:i a" }}.</p>

      <h2>Your Profile</h2>
      <ul>
        <li>Email:  {{ user.email }}</li>
        <li>Joined: {{ user.date_joined|date:"F j, Y" }}</li>
        <li>Bio:    {{ user.bio }}</li>
      </ul>
  {% endwhiff %}

Features

  • Combines with and if in a single template tag.
  • Simplifies template logic by reducing the need for nested tags.
  • Easy to use and integrate into existing Django projects.

Caveats

  • Not a great contender to replace multiple pipes or conditions in an existing template tag

Installation

You can install django-whiff via pip:

pip install django-whiff

Usage

Once installed, add django_whiff to your INSTALLED_APPS in your Django settings:

INSTALLED_APPS = [
    ...
    'django_whiff',
    ...
]

Note the underscore, not hyphen.

How It Works

  • The whiff tag assigns the value of some_obj to obj.
  • If some_obj is truthy, the content inside the whiff block is rendered.
  • If some_obj is falsey, nothing is rendered.

Tests

python -m unittest discover -s tests

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Contributing

Contributions are welcome! If you find a bug or have a feature request, please open an issue on the GitHub repository.

Acknowledgements

Inspired by the Python walrus operator (:=) and the need for cleaner, more concise template logic.

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_whiff-0.1.1.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

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

django_whiff-0.1.1-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_whiff-0.1.1.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.2

File hashes

Hashes for django_whiff-0.1.1.tar.gz
Algorithm Hash digest
SHA256 748199d2e81948bde4b7018ab39f65fc355e9d817f4c711f80ee8c9ced908a9a
MD5 9d80ef9b461718360e3436eec60da1ed
BLAKE2b-256 68ff78f2a1019ea081b2c6ed4a1859ec6cb23565b1da52ddf2dac6c926dec811

See more details on using hashes here.

File details

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

File metadata

  • Download URL: django_whiff-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.2

File hashes

Hashes for django_whiff-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ef52ca3099d98027ab80212f3a0fcbc1ed4d36f8db418d626f19d34d61ddd96e
MD5 28b6d5b14ff9e605ef931074490fb616
BLAKE2b-256 d3200d655cbe0f881423cfa73589985d4de6c854702148e855e6603acec505f3

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