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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

Supported by

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