Skip to content

Instantly share code, notes, and snippets.

@shadow-identity
Last active December 22, 2015 10:39
Show Gist options
  • Save shadow-identity/6460508 to your computer and use it in GitHub Desktop.
Save shadow-identity/6460508 to your computer and use it in GitHub Desktop.
from django import template
from django.core.urlresolvers import reverse
from django.utils.html import urlize
from django.http.request import HttpRequest
register = template.Library()
@register.tag(name="edit_link")
def do_get_admin_link(parser, token):
""" parser
"""
try:
tag_name, user_id = token.split_contents()
except ValueError:
raise template.TemplateSyntaxError('%r tag argument requires a user id, got "%s"'
% (token.contents.split()[0], (token.contents.split()[1:])))
return GetAdminLinkNode(user_id)
class GetAdminLinkNode(template.Node):
def __init__(self, user_id_var):
self.user_id = template.Variable(user_id_var)
def render(self, context):
try:
uid = int(self.user_id.resolve(context))
#url_text = reverse('admin:hello_contact_change', args=(uid,))
#print urlize(url_text)
#print defaultfilters.urlize('http://ya.ru/suck')
return urlize(HttpRequest.build_absolute_uri(reverse('admin:hello_contact_change', args=(uid,))))
except ValueError:
return ''
@shadow-identity
Copy link
Author

returns
Internal Server Error: /
Traceback (most recent call last):
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/core/handlers/base.py", line 115, in get_response
response = callback(request, _callback_args, *_callback_kwargs)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/annoying/decorators.py", line 79, in wrapper
context_instance=RequestContext(request), mimetype=mimetype)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/shortcuts/init.py", line 29, in render_to_response
return HttpResponse(loader.render_to_string(_args, *_kwargs), **httpresponse_kwargs)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/loader.py", line 177, in render_to_string
return t.render(context_instance)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/base.py", line 140, in render
return self._render(context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/base.py", line 830, in render
bit = self.render_node(node, context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/debug.py", line 74, in render_node
return node.render(context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/loader_tags.py", line 124, in render
return compiled_parent._render(context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/base.py", line 830, in render
bit = self.render_node(node, context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/debug.py", line 74, in render_node
return node.render(context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/base.py", line 830, in render
bit = self.render_node(node, context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/debug.py", line 74, in render_node
return node.render(context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/base.py", line 830, in render
bit = self.render_node(node, context)
File "/home/nedr/progs/venv/django-hello-world/lib/python2.7/site-packages/django/template/debug.py", line 74, in render_node
return node.render(context)
File "/home/nedr/progs/42/django-hello-world/django_hello_world/../django_hello_world/hello/templatetags/hello_extras.py", line 33, in render
return urlize(request.build_absolute_uri(reverse('admin:hello_contact_change', args=(uid,))))
AttributeError: 'module' object has no attribute 'build_absolute_uri'
[06/Sep/2013 11:13:04] "GET / HTTP/1.1" 500 467037

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment