我想通過模板標籤將用戶對象傳遞給我的模板。我第一次嘗試simple_tag,但顯然它只適用於字符串?反正這是我到目前爲止有:用戶對象的Django模板標籤
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()
,我會得到正確的號碼。我的模板中的迭代似乎沒有做任何事情。哪裏不對?
User.objects.get(用戶名=「測試」)給我的用戶「測試」正確也。正當我嘗試傳遞所有對象並迭代時,我不會在模板中獲取任何與循環有關的東西。 – leffe 2011-05-03 14:52:32