2015-11-24 4 views
0

Мне нужно распечатать список лиц, чьи дни рождения сегодня.Как я могу отправить в шаблон DJANGO переменную текущих данных?

Я не знаю, как правильно ввести текущую переменную данных в цикле if.

personal_list.html

{% for personal in personals %} 
{% ifequal personal.data_nastere|date:"d/m" '??/??' %} 
    <ul> 
     <li><a class="titleOmagiat" href="{% url 'personalomagiat_detail' pk=personal.pk %}"> 
     {{ personal.name }} {{ personal.surname }} </a>, {{ personal.birth_day|date:"d/m/Y" }} 
     </li> 
    </ul> 
{% endifequal %} 
{% endfor %} 

models.py

class Personal(models.Model): 
    name = models.CharField(max_length=20) 
    surname = models.CharField(max_length=20) 
    birth_day = models.DateField(blank=True, null=True) 

    class Meta: 
     ordering = ['name'] 

    def __str__(self): 
     return '%s %s' % (self.name, self.surname) 

views.py

def personal_list(request): 
    personals = Personal.objects.order_by('name') 
    return render(request, 'blog/personal_list.html', {'personals': personals}) 

urls.py

urlpatterns = [ 
    url(r'^personal/$', views.personal_list, name='personal_list'), 
] 

Скажите мне правильный ответ в коде.

ответ

2

Фильтрация должна выполняться на уровне базы данных, а не в шаблоне, иначе вы читаете данные с диска, который вы не используете, что приводит к плохим показателям.

Обновить Ваше мнение так:

from django.utils import timezone 


def personal_list(request): 
    today = timezone.now().date() 
    personals = Personal.objects.order_by('name').filter(
     birth_day__month=today.month, 
     birth_day__day=today.day) 
    return render(request, 'blog/personal_list.html', {'personals': personals}) 

И ваш шаблон таким образом:

<ul> 
    {% for personal in personals %} 
    <li><a class="titleOmagiat" href="{% url 'personalomagiat_detail' pk=personal.pk %}"> 
    {{ personal.name }} {{ personal.surname }} </a>, {{ personal.birth_day|date:"d/m/Y" }} 
    </li> 
    {% endfor %} 
</ul> 
+0

мои наилучшие пожелания, он определенно работает. Большое спасибо! – Mircea

Смежные вопросы