Django cómo ordenar Datefield por orden de día-mes para mostrar la lista de cumpleaños

Quiero aceptar el cumpleaños de los usuarios y tener una página que muestre el cumpleaños de todos, ignorando el año en que nacieron en Heres my models.py para CustomUser:

from datetime import datetime, date from django.contrib.auth.models import AbstractUser from django.db import models class CustomUser(AbstractUser): # First/last name is not a global-friendly pattern name = models.CharField(blank=True, max_length=255) birth_date = models.DateField(("Birth Date"), default=date.today) def __str__(self): return self.email 

Aquí está mi lógica de views.py:

 def birthdaylist(request): if(request.user.is_authenticated): users=CustomUser.objects.order_by('birth_date')[:] # ignore the line below # users= CustomUser.objects.extra(select={'birthmonth':'birth_date'},order_by=['birthmonth']) context={ 'users':users } return render(request,'dashboard/birthdaylist.html',context=context) else: return redirect('login') 

Aquí está mi forms.py:

 import datetime from bootstrap_datepicker_plus import DatePickerInput from django import forms from django.contrib.auth.forms import UserCreationForm, UserChangeForm from .models import CustomUser class CustomUserCreationForm(UserCreationForm): class Meta(UserCreationForm.Meta): model = CustomUser now = datetime.datetime.now() fields = ('username', 'email', 'gender', 'security_question', 'answer', 'birth_date', 'resume') widgets={ 'birth_date' :DatePickerInput( options={ 'maxDate':str(datetime.datetime.now()), #this needs width positioning } ) } 

Estoy usando el widget del indicador de fechas bootstrap plus para elegir la fecha. ¿Puede alguien ayudarme sobre cómo obtengo el resultado deseado en mis vistas .py? Siento que es necesario agregar algo en mi orden.py si necesita que agregue algo y luego comentar. PS: Estoy usando la versión Django 2.0.6

Tratar

 users=CustomUser.objects.extra( select={ 'month': 'extract (month from birth_date)', 'day': 'extract (day from birth_date)'}, order_by=['month','day'] ) 

¿Que tal este?

 from django.db.models.functions import Extract users=CustomUser.objects.annotate( month=Extract('birth_date','month'), day=Extract('birth_date','day') ).order_by('month','day')