我想在模板文件中显示我有多少用户,有多少用户选择了英语语言考试
如何在管理模板文件中显示此信息? (base.html)我尝试过这样的事情:
{{users.count()}}
我添加了一个应用程序" Userprofile"这是用户可以选择考试语言的表格
class UserProfile(models.Model):
JEZYK = (
('DE', 'niemiecki'),
('FR', 'francuski'),
('EN', 'angielski'),
)
jezyk_egzaminu = models.CharField(max_length=6, choices=JEZYK, verbose_name='jezyk')
如何在模板文件中显示有多少用户选择了' EN'' angielski'选项?
谢谢Catavaran我试过这个解决方案,但是我做错了:(
我在主项目应用程序中保存了一个文件" aplikacja" (aplikacja / aplikacja)
我在base.html中添加了
{%load mytags%}
<div>Total users: {% user_count %}</div>
<div>English users: {% user_count 'EN' %}</div>
我收到错误,因为返回/ admin / site
异常类型:TemplateSyntaxError 例外值:
&#39; mytags&#39;不是有效的标记库:模板库mytags不是 发现,试过 django.templatetags.mytags,django.contrib.admin.templatetags.mytags,django.contrib.staticfiles.templatetags.mytags
答案 0 :(得分:2)
将以下上下文传递给模板:
{'users': UserProfile.objects.all(),
'en_users': UserProfile.objects.filter(jezyk_egzaminu='EN')}
然后调用count()
方法:
<div>Total users: {{ users.count }}</div>
<div>English users: {{ en_users.count }}</div>
如果您想在管理员base.html
中获取用户数,那么您必须创建custom template tag:
from django import template
from myapp.models import UserProfile
register = template.Library()
@register.simple_tag
def user_count(lang=None):
users = UserProfile.objects.all()
if lang:
users = users.filter(jezyk_egzaminu=lang)
return users.count()
此代码应位于profil/templatetags/mytags.py
文件中。并且不要忘记创建空的profil/templatetags/__init__.py
文件。 See the docs for code layout
在base.html
:
{% load mytags %}
<div>Total users: {% user_count %}</div>
<div>English users: {% user_count 'EN' %}</div>