Thanks. As you pointed out, I had to remove the '-' in the dictionary
key.

On Mar 9, 9:31 pm, Karen Tracey <kmtra...@gmail.com> wrote:
>  On Wed, Mar 9, 2011 at 1:30 PM, octopusgrabbus
> <old_road_f...@verizon.net>wrote:
>
> > This is for Django 1.2 and MySQL 5.x
>
> > How does a template know a dictionary's name, if a dictionary is
> > supplied in render_to_response?
>
> It doesn't.
>
> >   totals_dict['TotalActiveAccounts'] = ret_list[0]
> >    totals_dict['TotalBillableAccounts'] = ret_list[1]
> >    totals_dict['TotalNon-BillableAccounts'] = int(ret_list[0]) -
> > int(ret_list[1])
>
> > context_instance=RequestContext(request))
> >    return render_to_response('main_page.html', totals_dict,
> > context_instance=RequestContext(request))
>
> Given that code, the template can access TotalActiveAccounts and
> TotalBillableAccounts:
>
> {{ TotalActiveAccounts }} {{ TotalBillableAccounts }}
>
> That last key of 'TotalNon-BillableAccounts' is going to be a problem
> because the dash isn't allowed in a template variable name (though I can't
> find where allowed chars in template variable name are listed...but trying
> to access {{ TotalNon-BillableAccounts }} will generate a template syntax
> error relating to not being able to parse the content after the dash. So
> you're going to want to avoid putting dashes in your dictionary key names.
>
> If for some reason you wanted that dictionary, directly, accessible in the
> context for the template, you'd pass it inside a different dictionary passed
> to render_to_response:
>
> render_to_response('main_page.html', {'totals_dict': totals_dict }, ...
>
> Since I gave the key the same name as the variable with the value, that's
> the name it will have in the template context, and you can get to the
> individual items using the . operator, e.g.:
>
> {{ totals_dict.TotalActiveAccounts }}
>
> If I instead passed the dict under a different name:
>
> render_to_response('main_page.html', {'foo': totals_dict }, ...
>
> that's the name I'd use in the template:
>
> {{ foo.TotalActiveAccounts }}
>
> So the variable name for the dictionary in the view makes no difference,
> it's the key names in the dictionary passed to render_to_response that
> matter to the template.
>
> Karen
> --http://tracey.org/kmt/

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