Emanuele Pucciarelli napsal(a):
> 
> Il giorno 29/lug/07, alle ore 22:48, Tomas Kopecek ha scritto:
> 
>> I know, it's syntactical nonsense. But does anybody know about some  
>> way
>> how to combine variable content with string content? Is it possible?
>>
>> For example, very crude way could be something like
>>
>> {% img %} {{BASE_URL}}/path/z.gif {% endimg %}
> 
> Maybe something like {% img base_url "path/z.gif" %}: let string  
> content be surrounded by double quotes, and let the tag join  
> everything for you.
> 
> Code:
> 
> from django.template import Node, TemplateSyntaxError, Library
> 
> register = Library()
> 
> class MixedNode(Node):
>       class Variable(object):
>               def __init__(self, name):
>                       self.name = name
>               def __str__(self):
>                       return self.name
>       def __init__(self, args):
>               self.parameters = [
>                       [self.Variable(arg), 
> arg.rstrip('"').lstrip('"')][arg[0] == arg 
> [-1] == '"']
>                       for arg in args]
>       def get_param(self, i, context):
>               if isinstance(i, self.Variable):
>                       return context[str(i)]
>               else:
>                       return i
>       def get_string(self, context):
>               return ''.join([self.get_param(param, context) for param in  
> self.parameters])
>               
> class ImageNode(MixedNode):
>       def render(self, context):
>               return '<img src="%s"/>' % self.get_string(context)
>       
> def do_img(parser, token):
>       arglist = token.split_contents()
>       if len(arglist) < 2:
>               raise TemplateSyntaxError, "%r tag requires at least one 
> argument"  
> % token.contents.split()[0]
>       return ImageNode(arglist[1:])
>       
> register.tag('img', do_img)
> 
> (you can then subclass MixedNode for pretty much everything...)
> 
> Regards,
> 
It looks like a good idea, thanks.

-- 

                        Tomas Kopecek
                        e-mail: permonik at mesias.brnonet.cz
                         ICQ: 114483784

--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to