Я пытаюсь передать объекты пользователя в мой шаблон через тег шаблона. Я сначала попробовал simple_tag, но, видимо, это только для строк? Во всяком случае, это то, что я до сих пор:
templatetags / profiles.py
from django.template import Library, Node, Template, VariableDoesNotExist, TemplateSyntaxError, \
Variable
from django.utils.translation import ugettext as _
from django.contrib.auth.models import User
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
from django.db import models
class userlist(Node):
def __init__(self, format_string):
self.format_string = format_string
def render(self, context):
try:
users = self.format_string
return users
except VariableDoesNotExist:
return None
def get_profiles(parser, token):
return userlist(User.objects.all())
register = Library()
register.tag('get_profiles', get_profiles)
Вот что я имею в своем шаблоне для проверки:
{% load profiles %}
{% get_profiles %}
{% for p in get_profiles %} {{ p }} {% endfor %}
Я только распечатал [, , , , ]
или, если я изменил User.objects.all()
на User.objects.count()
, я получил правильный номер. Итерация for в моем шаблоне, похоже, ничего не делает. что не так?