2010-09-01 30 views
9

Ben benim ModelAdmin içinDjango Yönetici + Filtre Yatay?

filter_horizontal = ('blocked_email_notifications',) 

filter horizontal ekledim, ama yine de oldukça şık javascript gelişmiş sürümden daha, bir çoklu seçme widget olarak bunu render ediyor. Nasıl olur? Başka bir şey eklemem gerekir mi?

kullanıcı modeli

blocked_email_notifications = ManyToManyField('EmailTemplate', blank=True) 

olarak tanımlamıştır Ve formda alanını tanımlarsanız formu widget'ı eklemeniz gerekir

blocked_email_notifications = ModelMultipleChoiceField(queryset=EmailTemplate.objects.order_by('key'), required=False) 

cevap

19

olarak tanımlamıştır:

from django.contrib.admin.widgets import FilteredSelectMultiple 

blocked_email_notifications = ModelMultipleChoiceField(
    queryset=EmailTemplate.objects.order_by('key'), 
    required=False, 
    widget=FilteredSelectMultiple(
     verbose_name=EmailTemplate._meta.verbose_name, 
     is_stacked=False)) 

is_stacked:

  • False: listeler
  • True yan
  • yana işlenen: listeler Sadece FilteredSelectMultiple bir örneğini geçmesi gerekecektir cevap (verbose_name eklemek istediğiniz diğer
+6

altına birini oluşturulur Django'nun son versiyonları yerine sınıflara yığılmışlar. –

+0

Umarım bu da yardımcı olur http://blog.jayapal.in/2009/08/reuse-django-admin-filteredselectmultip.html – xtreak