I have duplicated as best I can the processing for handling variables
in custom template tags mentioned in an earlier post but it's not
working for me as I need the value of the variable before I parse it.
Is there another way of making the variable available?

The tag is being called from the tempalte with:

{% page_links "category"  %}

Where category is being passed into the template from a view.  (also
tried "{{category}}" and {{category}} and category)

I want to use the value of category to determine which list of pages
to return.

I KNOW THIS DOESN"T WORK:

@register.tag(name="page_links")
def get_page_links(parser,token):
    tag_name, cat = token.contents.split()
    return PageLink(cat[1:-1])

class PageLink(template.Node):

    def __init__(self, cat):

        cat= template.Variable(cat)
        print cat   <---------------------  outputs category
        if cat=='business':
            pages=BusinessPage.objects.filter
(is_live=True).select_related().order_by('order')
        elif cat=='community':
            pages=CommunityPage.objects.filter
(is_live=True).select_related().order_by('order')
        elif cat=='tourism':
            pages=TourismPage.objects.filter
(is_live=True).select_related().order_by('order')

        else:
            pages = False

            self.pages = pages

    def render(self, context):
        context['pages'] = self.pages

        return ''


This code works fine as long as I call it like this:

{% page_links "business" %}

@register.tag(name="page_links")
def get_page_links(parser,token):

        tag_name, cat = token.contents.split()
        cat = cat[1:-1]

        if cat=='business':
            pages=BusinessPage.objects.filter
(is_live=True).select_related().order_by('order')
        elif cat=='community':
            pages=CommunityPage.objects.filter
(is_live=True).select_related().order_by('order')
        elif cat=='tourism':
            pages=TourismPage.objects.filter
(is_live=True).select_related().order_by('order')
        else:
            pages = False

        return PageLink(pages)

class PageLink(template.Node):

    def __init__(self, pages):
        self.pages = pages

    def render(self, context):
        context['pages'] = self.pages

        return ''
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
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