python - How to filter filter_horizontal in Django admin? -


i'm looking way use filter_horizontal on base of filtered queryset.

i've tried use custom manager:

in models.py:

class availequipmanager(models.manager):     def get_query_set(self):         return super(availequipmanager, self).get_query_set().filter(id=3)  class equipment(models.model):     description = models.charfield(max_length=50)     manufacturer = models.foreignkey(manufacturer)     [...]     objects = models.manager()     avail = availequipmanager()      def __unicode__(self):         return u"%s" % (self.description) 

in admin.py:

class systemadmin(admin.modeladmin):     filter_horizontal = ('equipment',) # works shows entries     #filter_horizontal = ('avail',)     # not work 

so questions is, how can reduce left side of filter_horizontal show specific items?

i found solution adapting answer different question found in google groups

it works custom modelform so:

create new forms.py:

from django import forms models import equipment  class equipmentmodelform(forms.modelform):     class meta:         model = equipment      def __init__(self, *args, **kwargs):         forms.modelform.__init__(self, *args, **kwargs)         self.fields['equipment'].queryset = equipment.avail.all() 

then in admin.py:

class systemadmin(admin.modeladmin):     form = equipmentmodelform     filter_horizontal = ('equipment',)  

hope helps else out sometime.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -