Tim, The ordering meta option on my model did the trick. Thanks for the solution.
Reed On Nov 25, 1:50 pm, Tim Valenta <tonightslasts...@gmail.com> wrote: > Well, you've got a couple of options. One is easiest and most > straightforward, but could impact performance. The second is a little > bit more work, but would limit the ordering to only taking effect on > that one form. > > The first way is to use the Meta option `ordering = ('fieldname',)`, > as described > here:http://docs.djangoproject.com/en/dev/ref/models/options/#ordering > > Bare in mind that this will passively affect ALL queries you do to > that model's objects, unless you specifically tell it not to order > during the query. If you think that you'll *always* want that sort > order to take effect, then this is the preferred method of > accomplishing that. > > The second way is to intercept the form's queryset powering the > widget. If you're not using Form objects with your admin (ie, you're > just specifying 'fields' or 'fieldsets' on your ModelAdmin), then > you'll have to take a quick sidequest: > > Create a class somewhere (preferably in your app's directory, in a > "forms.py" file or something obvious) like so: > > from django import forms > from models import MyModel > class MyModelForm(forms.ModelForm): > class Meta: > model = MyModel > def __init__(self, *args, **kwargs): > forms.ModelForm.__init__(self, *args, **kwargs) > self.fields['myfieldname'].queryset = > MyModel.objects.order_by('custom_sort_field_name') > > And then back in your ModelAdmin, add this attribute to the class: > > # ... > from forms import MyModelForm > form = MyModelForm > > This will cause the admin to use *your* form instead of the default. > What I've done is created a form which simply hijacks the queryset on > 'myfieldname' (the field you're trying to sort), and alters it before > the widget has a chance to render itself. > > Both methods are effective, but be sure to consider my initial > statement, about performance impact. Pick the method that strikes the > balance in your mind between performance and practicality. > > Hope that helps! > > On Nov 25, 1:06 pm, rc <reedcr...@gmail.com> wrote: > > > I have configured a modeladmin which uses the filter_horizontal > > feature. I would like to be able to order left side of this feature by > > name instead of the default (which I believe is by id). Is this > > possible? I see how to use "ordering" in the display for change lists, > > but not sure how to apply that to the 'left' side data of the > > filter_horizontal. -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@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.