django-birthday icon indicating copy to clipboard operation
django-birthday copied to clipboard

🎂 django-birthday is a helper library to work with birthdays in models

django-birthday

.. image:: https://img.shields.io/pypi/v/django-birthday.svg :target: https://pypi.python.org/pypi/django-birthday/

.. image:: https://img.shields.io/pypi/dm/django-birthday.svg :target: https://pypi.python.org/pypi/django-birthday/

.. image:: https://img.shields.io/github/license/bashu/django-birthday.svg :target: https://pypi.python.org/pypi/django-birthday/

.. image:: https://img.shields.io/travis/bashu/django-birthday.svg :target: https://travis-ci.com/github/bashu/django-birthday/

django-birthday is a helper library to work with birthdays in models.

Maintained by Basil Shubin <https://github.com/bashu/>, and some great contributors <https://github.com/bashu/django-birthday/contributors>.

Installation

First install the module, preferably in a virtual environment. It can be installed from PyPI:

.. code-block:: bash

pip install django-birthday

Usage

django-birthday provides a birthday.fields.BirthdayField model field type which is a subclass of django.db.models.DateField and thus has the same characteristics as that. It also internally adds a second field to your model holding the day of the year for that birthday, this is used for the extra functionality exposed by birthday.managers.BirthdayManager which you should use as the manager on your model.

A model could look like this:

.. code-block:: python

from django.db import models
from django.conf import settings

from birthday import BirthdayField, BirthdayManager


class UserProfile(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    birthday = BirthdayField()

    objects = BirthdayManager()

Get all user profiles within the next 30 days:

.. code-block:: python

UserProfile.objects.get_upcoming_birthdays()

Get all user profiles which have their birthday today:

.. code-block:: python

UserProfile.objects.get_birthdays()

Or order the user profiles according to their birthday:

.. code-block:: python

UserProfile.objects.order_by_birthday()

For more details, see the documentation_ at Read The Docs.

Contributing

If you like this module, forked it, or would like to improve it, please let us know! Pull requests are welcome too. :-)

Credits

django-birthday <https://github.com/bashu/django-birthday/>_ was originally started by Jonas Obrist <https://github.com/ojii>_ who has now unfortunately abandoned the project.

License

django-birthday is released under the BSD license.

.. _documentation: https://django-birthday.readthedocs.io/