Hello Stephen, Thanks for your help, ok I think it's better to used views for what I need to do. Last question, how I can define this in view and template ? For the moment I used 'for' & 'endfor' in my template to show all my items, but I want to show "date2016" in only one field.
*Views.py* from .models import Test from datetime import datetime from django.shortcuts import render, get_object_or_404 def test(request): test = Test.objects.order_by('name') *date2016 = Test.objects.filter(dateregister__contains='2016').count()* ?????? return render(request, 'test/test.html', {'test': test}) *Template:* *{% for test in test %}<td>{{ test.name }}</td><td>{{ test.dateregister }}</td>{% endfor %}{% test.date2016 %} ????Thanks for your help !* Le mercredi 1 juin 2016 19:00:41 UTC+2, Stephen Butler a écrit : > > From the template language reference: > > < > https://docs.djangoproject.com/en/1.9/ref/templates/language/#accessing-method-calls > > > > """ > Because Django intentionally limits the amount of logic processing > available in the template language, it is not possible to pass arguments to > method calls accessed from within templates. Data should be calculated in > views, then passed to templates for display. > """ > > If you want to do something like this then you're better switching to a > more complete template language, like Jinja2. But I'd also suggest you > prepare your querysets entirely before passing them to templates. > > Also, for Date/DateTime/Time fields you should use the lookups provided. > Do this instead: .filter(dateregister__year=2016) > > On Wed, Jun 1, 2016 at 11:30 AM, Franck <was...@gmail.com <javascript:>> > wrote: > >> Hello, >> >> First Django project... sorry ;-) >> >> I can run that in manage.py shell, result is ok. >> * Test.objects.filter(dateregister__contains='2016').count()* >> >> But how I can show this result in the template ? >> {{ test.count }} works directly in the template without modify views.py, >> I tried with >> *{{ test.filter(dateregister__contains='2016').count()** }} but no >> result...* >> >> >> *Models.py* >> >> from __future__ import unicode_literals >> from django.db import models >> from django.utils import timezone >> >> class Test(models.Model): >> name = models.CharField(max_length=10, editable=False) >> dateregister = models.DateTimeField(auto_now=False, auto_now_add= >> False, null=True, blank=True, editable=False) >> def __str__(self): # __unicode__ on Python 2 >> return self.name >> >> >> *Views.py* >> from .models import Test >> from datetime import datetime >> from django.shortcuts import render, get_object_or_404 >> >> def test(request): >> test = Test.objects.order_by('name') >> return render(request, 'test/test.html', {'test': test}) >> >> Thanks for your help ! >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to django-users...@googlegroups.com <javascript:>. >> To post to this group, send email to django...@googlegroups.com >> <javascript:>. >> Visit this group at https://groups.google.com/group/django-users. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/03de09e4-1a70-4bf3-a669-dce6a22f24d9%40googlegroups.com >> >> <https://groups.google.com/d/msgid/django-users/03de09e4-1a70-4bf3-a669-dce6a22f24d9%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/f7f13063-3c98-4373-b238-b7ab9fb5e0d0%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.