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
Post a Comment