This post seems to be squarely in django-users territory, not django-
developers. Perhaps the discussion could continue there?

On Jul 22, 9:25 pm, Andre Terra <andrete...@gmail.com> wrote:
> I'm on my phone, and therefore read your message really quickly, so
> excuse me if I misunderstood the issue.
>
> A few questions:
>
> * Have you considered using a custom widget for the form?
> * What does the ancillary data look like?
> * Could you paste the relevant model, form and view? I find it easier
> to understand issues like this if I'm looking at the code. And don't
> worry, we won't judge! Just yesterday I caught myself using 'is' for
> string comparison, so your code is probably better than mine =)
>
> Also, love the vocabulary. Keep it coming, we need more posts like this.
>
> Cheers,
> AT
>
> On 7/22/11, Chris Cogdon <ch...@cogdon.org> wrote:
>
>
>
>
>
>
>
>
>
> > I think I did my due google diligence (googlence?) on this one, and came up
> > short.
>
> > I'm trying to pass some ancillary, read-only information along with each
> > element in a formset. Ie, Along with the stuff that can be changed by the
> > user, I'd like some stuff that can-NOT be changed. Not all, but some, of the
> > information needs to be read back during validation.
>
> > For example, I have:
>
> > class Thingy ( models.Model ):
> >    name = model.CharField ()
>
> > I have a few that selects a few Thingys and will present them to the user
> > with a checkbox next to each, so its obvious I want a form:
>
> > class CheckThingyForm ( forms.Form ):
> >    checked = forms.BooleanForm ()
>
> > CheckThingyFormset = formset_factory ( CheckThingyForm, extra=0 )
>
> > Inside the view, I create a list of the thingies I want to present
>
> >    thingies = Thingy.objects.filter ( ... some criteria... )
>
> > and now to... somehow... create the initial data for the formset. This is
> > where I am stumped. I've tried something like the following:
>
> >    thingies_list = []
> >    for thingy in thingies:
> >            thingies_list.append ( { 'thingy': thingy } )
>
> >    formset = CheckThingyFormset ( initial = thingies_list )
>
> > And while this presents the correct number of rows, my expectation on being
> > able to extract the thingy in the template fails. "form.thingy.name" returns
> > nothing
>
> > {% for form in formset %}
> > <tr><td>{{ form.checked }}</td><td>{{ form.thingy.name }}</td></tr>
> > {% endfor %}
>
> > If I'm far more explicit about it, by using the following, i still turn up a
> > blank
>
> > thingies_list.append ( { 'name': thingy.name } )
>
> > What's the "right" way of passing ancillary data to a formset like this? If
> > it was just a single form, then I could very easily just pass the data i
> > needed through additional context variables. But since here I want to pass
> > some data per form, and dont care about being able to read it back or not,
> > it makes sense to try and pass it along WITH the form, and not need it to be
> > a field itself to read back.
>
> > (What I omitted was needing to pass thingy.id, so I know what thingy I'm
> > actually checking when validating the form... obviously I should include
> > that in the form or an "add_fields in the formset, and have it as a
> > hidden... I could do the same thing with the "name" and just extract the
> > value explicitly, but that's really contorted)
>
> > Thanks for reading this far... I hope someone can help.
>
> > --
> >   ("`-/")_.-'"``-._        Chris Cogdon <ch...@cogdon.org>
> >    . . `; -._    )-;-,_`)
> >   (v_,)'  _  )`-.\  ``-'
> >  _.- _..-_/ / ((.'
> > ((,.-'   ((,/   fL
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Django developers" group.
> > To post to this group, send email to django-developers@googlegroups.com.
> > To unsubscribe from this group, send email to
> > django-developers+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/django-developers?hl=en.
>
> --
> Sent from my mobile device

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to