To add to your example.  Default arguments are parsed once by the
interpreter, not each time the program is run.  Most folks don't desire side
effects like this.  One way to avoid it is to only use immutable
types<http://docs.python.org/reference/datamodel.html>in python as
keyword arguments (True, False, None, numbers, strings,
tuples).

Brian

On Tue, Oct 4, 2011 at 7:23 PM, Martin J. Laubach <goo...@emsi.priv.at>wrote:

>   Are you sure your context is thread-safe, ie. it's rebuilt from scratch
> every time you render an email and not re-used, stored in a global variable,
> class variable, whatever? Your problem description very much sounds like
> someone is fiddling with the context while the template is rendering.
>
>   A popular way to generate such a problem would be to use a literal dict
> as default parameter, something like:
>
>     def my_render_email(recipient, context={}):
>         context['email'] = recipient
>         body = render_to_string('template.**html', context)
>         ...
>
>   That is absolutely positively guaranteed to blow up in your face when you
> least expect it.
>
>         mjl
>
>
>  --
> 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/-/mW012mKt7pwJ.
>
> 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.
>



-- 
Brian Bouterse
ITng Services

-- 
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