Skip to content

Latest commit

 

History

History
75 lines (47 loc) · 2.42 KB

usage.rst

File metadata and controls

75 lines (47 loc) · 2.42 KB

Usage

django-birthday provides a :class:`birthday.fields.BirthdayField` model field type which is a subclass of :class:`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 :class:`birthday.managers.BirthdayManager` which you should use as the manager on your model.

A model could look like this:

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:

UserProfile.objects.get_upcoming_birthdays()

Get all user profiles which have their birthday today:

UserProfile.objects.get_birthdays()

Or order the user profiles according to their birthday:

UserProfile.objects.order_by_birthday()

Method References

.. method:: birthday.managers.BirthdayManager.get_upcoming_birthdays

    Returns a queryset containing objects that have an upcoming birthday.

    :param days: *Optional*. Amount of days that still count as 'upcoming',
                 defaults to 30.
    :param after: *Optional*. Start day to use, defaults to 'today'.
    :param include_day: *Optional*. Include the 'after' day for lookups.
    :param order: *Optional*. Whether the queryset should be ordered by birthday,
                  defaults to True.
    :param reverse: *Optional*. Only applies when `order` is True. Apply
                    reverse ordering.
    :rtype: Instance of :class:`django.db.models.query.QuerySet`.


.. method:: birthday.managers.BirthdayManager.get_birthdays

    Returns a queryset containing objects which have the birthday on a specific
    day.

    :param day: *Optional*. What day to get the birthdays of. Defaults to
        'today'.
    :rtype: Instance of :class:`django.db.models.query.QuerySet`.


.. method:: birthday.managers.BirthdayManager.order_by_birthday

    Returns a queryset ordered by birthday (not age!).

    :param reverse: *Optional*. Defaults to `False`. Whether or not to reverse
        the results.
    :rtype: Instance of :class:`django.db.models.query.QuerySet`.