【问题标题】:Django admin dropdowns based on a boolean基于布尔值的 Django 管理员下拉菜单
【发布时间】:2012-11-16 18:49:08
【问题描述】:

我想知道如何根据布尔值过滤下拉列表。假设其中一个对象是True,那么它会显示,但如果它是False,则不会显示。

任何帮助都会很棒。这是我的模型和管理文件的副本

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']

【问题讨论】:

    标签: python mysql django django-models django-admin


    【解决方案1】:

    哦。试试这个:

    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 上的文档。

    【讨论】:

    • 嗨 Pavel,嗯,有点像,但有点不同。这是一张可以更好地解释“i.imgur.com/g1eOE.png”的图片。我想过滤掉红框中的机场,但保留绿框中的机场。
    猜你喜欢
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2017-05-08
    相关资源
    最近更新 更多