Electronics & Programming

develissimo

Open Source electronics development and programming

  • You are not logged in.

#1 Jan. 14, 2011 02:20:10

S.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

inclusion_tag argument missing


Why 'inclusion_tag' from 'django.template' does not accept the
argument 'name', as the method of 'tag' does?

For example, I need two inclusion_tag's with the same functionality
but with different templates. It would be nice to do something like
this:

register.inclusion_tag('first.html', name='tag_one')
(base_tag_function)
register.inclusion_tag('second.html', name='tag_two')
(base_tag_function)

--
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 athttp://groups.google.com/group/django-users?hl=en.

Offline

#2 Jan. 14, 2011 08:29:27

marco c.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

inclusion_tag argument missing


seehttp://docs.djangoproject.com/en/dev/howto/custom-template-tags/you should use the 'context' parameter.

from link
"Sometimes, your inclusion tags might require a large number of
arguments, making it a pain for template authors to pass in all the
arguments and remember their order. To solve this, Django provides a
takes_context option for inclusion tags. If you specify takes_context
in creating a template tag, the tag will have no required arguments,
and the underlying Python function will have one argument -- the
template context as of when the tag was called."



On Jan 14, 3:17 am, SvartalF <darkae...@googlemail.com> wrote:
> Why 'inclusion_tag' from 'django.template' does not accept the
> argument 'name', as the method of 'tag' does?
>
> For example, I need two inclusion_tag's with the same functionality
> but with different templates. It would be nice to do something like
> this:
>
> register.inclusion_tag('first.html', name='tag_one')
> (base_tag_function)
> register.inclusion_tag('second.html', name='tag_two')
> (base_tag_function)

--
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 athttp://groups.google.com/group/django-users?hl=en.

Offline

#3 Jan. 14, 2011 08:46:50

S.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

inclusion_tag argument missing


Nope, I mean that the value of 'name 'argument will be the name of the
tag in templates, so tags {% tag_one %} and {% tag_two %} will call
the same function, and render result in different templates.

On 14 янв, 16:29, marco carminati <carminati.ma...@gmail.com> wrote:
> seehttp://docs.djangoproject.com/en/dev/howto/custom-template-tags/>
> you should use the 'context' parameter.
>
> from link
> "Sometimes, your inclusion tags might require a large number of
> arguments, making it a pain for template authors to pass in all the
> arguments and remember their order. To solve this, Django provides a
> takes_context option for inclusion tags. If you specify takes_context
> in creating a template tag, the tag will have no required arguments,
> and the underlying Python function will have one argument -- the
> template context as of when the tag was called."
>
> On Jan 14, 3:17 am, SvartalF <darkae...@googlemail.com> wrote:
>
>
>
>
>
>
>
> > Why 'inclusion_tag' from 'django.template' does not accept the
> > argument 'name', as the method of 'tag' does?
>
> > For example, I need two inclusion_tag's with the same functionality
> > but with different templates. It would be nice to do something like
> > this:
>
> > register.inclusion_tag('first.html', name='tag_one')
> > (base_tag_function)
> > register.inclusion_tag('second.html', name='tag_two')
> > (base_tag_function)

--
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 athttp://groups.google.com/group/django-users?hl=en.

Offline

#4 Jan. 14, 2011 09:29:41

bruno d.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

inclusion_tag argument missing


On 14 jan, 09:46, SvartalF <darkae...@googlemail.com> wrote:
> Nope, I mean that the value of 'name 'argument will be the name of the
> tag in templates, so tags {% tag_one %} and {% tag_two %} will call
> the same function, and render  result in different templates.
>

It's indeed a valid use case, and from a quick glance at the
inclusion_tag method I didn't spot any obvious reason this couldn't be
implemented.

In the meantime, there's an ugly but simple workaround:

def mktagfunc(name):
def tagfunc(...):
code_here()
return some_context()
tagfunc.__name__ = name
return tagfunc

tag_one = register.inclusion_tag('first.html')(mktagfunc("tag_one"))
tag_two = register.inclusion_tag('second.html')(mktagfunc("tag_two"))

Not tested but it should work.

--
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 athttp://groups.google.com/group/django-users?hl=en.

Offline

Board footer

Moderator control

Enjoy the 11th of December
PoweredBy

The Forums are managed by develissimo stuff members, if you find any issues or misplaced content please help us to fix it. Thank you! Tell us via Contact Options
Leave a Message
Welcome to Develissimo Live Support