Thank you very much for the help. It have finally solved the problem. BTW, one issue was left - the plus icon redirected to the creation page instead of opening popup. I've solved it by including the <script type="text/javascript" src="/media/js/admin/ RelatedObjectLookups.js"></script> directly in my template, but it's strange since my template extends the "admin/change_form.html".
On Dec 12, 9:05 pm, Jeff FW <jeff...@gmail.com> wrote: > 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 -~----------~----~----~----~------~----~------~--~---