Well holy crap!! context['user'] worked perfectly! I thought I would have 
to come up with some crazy workaround!
Thank you kindly sir.


On Sunday, 29 July 2012 15:03:13 UTC-4, Ash Courchene wrote:
>
> So I made a custom template tag that allows pieces of content to be edited 
> by the site administrator with the click of a link.
> For instance, if i put {% editable 'index_block_one' %}, it would return 
> whatever content is in the Placeholder model I created with the name 
> "index_block_one".
> The code below, for the template tag:
>
> from django import template
> from django.contrib.auth.models import User
> from cms.models import Placeholder
>
> register = template.Library()
>
> @register.tag(name="editable")
> def do_editable(parser, token):
> try:
> tag_name, location_name = token.split_contents()
> except ValueError:
> raise template.TemplateSyntaxError("%r tag requires a single argument." % 
> token.contents.split()[0])
> if not(location_name[0] == location_name[-1] and location_name[0] in ('"', 
> "'")):
> raise template.TemplateSyntaxError("%r tag's arguments should be in 
> quotes." % tag_name)
> return EditableNode(location_name, context)
>
>
> class EditableNode(template.Node):
>  def __init__(self, location_name):
> self.location_name = location_name.encode('utf-8').strip("'")
>  def render(self, context):
> obj = Placeholder.objects.filter(location=self.location_name)
> if request.user.is_authenticated():
> for x in obj:
> return "%s<br/><a href='/admin-edit/%s'>edit</a>" % (x, self.location_name)
> else:
> for x in obj:
> return x
>
>
> I want this to return a link that says "Edit" if the site administrator is 
> logged in, and just the content if the administrator is not logged in. 
> However, I get an error saying "*global name 'request' is not defined*". 
> I did put django.core.context_processors.request and .auth in my settings 
> file. And still nothing.
>
> So I did some research that said that an inclusion tag is the way to go, 
> except I don't have an html file as a template, because this template tag 
> is returning a Model object(??). There's no html to show..... SO. Is there 
> a way to use request.user in this template tag without the use of an 
> inclusion tag? If someone could point me in the right direction, that'd be 
> great.... And hopefully all this made sense. Thanks again.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/JI7BDqMOMw0J.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to