You're passing your queryset in, but you're never using it in your
widget.  In my code, see how I have:

widgets.CategorySelect(
    categories=models.Category.objects.order_by('parent',
'list_order')
),

I don't have the code on hand for my CategorySelect widget, but I
remember that it takes "categories", and turns it into a list of
choices, which then get passed to Select.__init__() as "choices".
Since you're just using a Select() directly, you'd want to pass the
choices in there.  Here's a simple list comprehension that you may
have to adapt a little to do that:

[(t.id, unicode(t)) for t in queryset.all()]

That assumes that you add "queryset" as an argument to __init__(),
which you should probably do.

-Jeff

On Dec 12, 1:06 pm, Eugene Mirotin <emiro...@gmail.com> wrote:
> I was busy for several days and could give it a try only now. Thank
> you for the answer, but I still can't make it work.
> I have the model called Tournament and the model called
> TournamentResult which has foreign keys Team and Tournament.
>
> What I'm doing is a page for bulk upload of the results for the
> specific tournament that should be selected from the drop-down
>
> At the moment my code looks like this:
>
> class TournamentChoiceField(forms.ModelChoiceField):
>     def __init__(self, *args, **kwargs):
>         super(TournamentChoiceField, self).__init__(*args, **kwargs)
>         self.widget = admin_widgets.RelatedFieldWidgetWrapper(
>             forms.Select(),
>             TournamentResult._meta.get_field('tournament').rel,
>             admin.site,
>         )
>
> class UploadFormInitial(forms.Form):
>     tournament = TournamentChoiceField(Tournament.objects.all())
>
> But I don't see any values in the drop-down list.
>
> On Dec 9, 3:55 pm, Jeff FW <jeff...@gmail.com> wrote:
>
> > To get the plus icon back, you need to wrap the field in a
> > RelatedFieldWidgetWrapper.  Here's an example from my code--obviously,
> > you'll have to adapt it to fit your situation.
>
> > class CategoryChoiceField(forms.ModelChoiceField):
>
> >     def __init__(self, *args, **kwargs):
> >         super(CategoryChoiceField, self).__init__(*args, **kwargs)
> >         self.widget = widgets.RelatedFieldWidgetWrapper(
> >             widgets.c(
> >                 categories=models.Category.objects.order_by('parent',
> > 'list_order')),
> >             models.Category._meta.get_field('parent').rel,
> >             admin.site,
> >         )
>
> > -Jeff
>
> > On Dec 9, 6:50 am, Eugene Mirotin <emiro...@gmail.com> wrote:
>
> > > Well, looks that the ModelChoiceField solves the problem except of the
> > > plus icon
>
> > > On Dec 9, 12:34 pm, Eugene Mirotin <emiro...@gmail.com> wrote:
>
> > > > Hello. I'm working on the custom admin page  that will serve batch
> > > > items creation based on the uploaded file.
> > > > All these items should be linked to the single foreign key item.
> > > > This item should be selected on the form.
> > > > Of course, I can investigate the inner structure of the rendered admin
> > > > pages and mimic it my template, but it doesn't look DRY.
> > > > So I want to {% include %} the fieldset.html and pass the variable to
> > > > it that will make it to render the standard ForeignKey control (with
> > > > "+" icon).
> > > > Is there a legal way to do it?
>
>
--~--~---------~--~----~------------~-------~--~----~
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