1
このテンプレートタグ(djangosnippetsから)に渡すことができるビューであるview_categoryをどのように供給するかを考えようとしているうちに、私は立ち往生していません。また、このビュー/タグのように見えると思われるurls.pyは何ですか?Djangoビューの逆関数を与える方法を見つける
ソース(http://djangosnippets.org/snippets/475/#c4123):あなたのURLのconfで
from django.core.urlresolvers import reverse, NoReverseMatch
from django.template import Library, Variable, TemplateSyntaxError, Node
register = Library()
class RelatedNode(Node):
def __init__(self, object_list, viewname):
self.object_list = Variable(object_list)
self.viewname = viewname
def render(self, context):
def node(object):
try:
reversed = reverse(self.viewname, args=[object.id])
except NoReverseMatch:
return '<li>%s</li>' % object
return '<li><a href="%s">%s</li>' % (reversed, object)
def recursive(object):
if object.child_set.all():
output.append('<ul>')
for object in object.child_set.all():
output.append(node(object))
recursive(object)
output.append('</ul>')
output = []
for object in self.object_list.resolve(context):
if not object.parent:
output.append(node(object))
recursive(object)
return '\n'.join(output)
def related_linked_list(parser, token):
bits = token.contents.split()
if len(bits) != 3:
raise TemplateSyntaxError, "'%s' tag takes exactly 2 arguments" % bits[0]
return RelatedNode(bits[1], bits[2])
register.tag(related_linked_list)
some_category_viewは何を返さなければならないのですか? – user955879
これは通常のジャンゴビューです。 HttpResponseを返します。このスニペットはビューを逆にしてURLを取得し、URLへのリンクを作成します。 – jdi