2012-11-28 87 views
1

我在想如何根據布爾值過濾下拉菜單。假設其中一個對象是True,那麼它將被顯示,但如果它是False那麼它將不會被顯示。基於布爾值的Django管理員下拉菜單

任何幫助將是偉大的。下面是配置文件模塊我的模型的複製和管理文件

models.py

class Airports(models.Model): 
    id = models.AutoField("ID", primary_key=True, editable=False,) 
    airporticao = models.CharField("Airport ICAO", max_length=6, help_text="Example: CYYZ or KLGA") 
    airportname = models.CharField("Airport name", max_length=50, help_text="Example:") 
    country = models.CharField("Country", max_length=50, help_text="Example: Canada") 
    hub = models.BooleanField("Hub?", default=False) 

admin.py

class UserProfileadmin(admin.ModelAdmin): 
    list_display = ['user', 'country', 'vatsimid', 'totalflights', 'totalhours', 'hub'] 
    search_fields = ['user'] 

回答

0

哦。試試這個:

class UserProfileadmin(admin.ModelAdmin): 
    def formfield_for_foreignkey(self, db_field, request, **kwargs): 
     if db_field.name == 'hub': 
      kwargs['queryset'] = Airports.objects.filter(hub=True) 
     return super(UserProfileadmin, self).formfield_for_foreignkey(db_field, request, **kwargs) 

關於formfield_for_foreignkey的文檔。

+0

嗨帕維爾,它有點像這樣,但有點不同。這裏有一張圖片可以更好地解釋'http://i.imgur.com/g1eOE.png'。我想過濾掉紅色方框內的機場,但將機場保持在綠色方框內。 – icebox3d

+0

感謝您的幫助,它完美的工作:) – icebox3d