【问题标题】:How to check list_display if no value, to show -- in django admin?如果没有值,如何检查 list_display 以显示 -- 在 django admin 中?
【发布时间】:2017-06-08 11:42:42
【问题描述】:

Django 1.10 版

如何有条件地检查变量是否为空白并显示“-”?

即如果get_followers 和/或get_following 未设置,则显示“-”

@admin.register(Application)
class ApplicationAdmin(admin.ModelAdmin):
  list_display = [
        'name',
        'get_following',
        'get_followers',
        'get_friends',
        'manager',
       ]

【问题讨论】:

    标签: python django list django-admin display


    【解决方案1】:

    这是 list_display 的文档: https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display

    您可以为此使用方法。例如:

    class Application(models.Model):
        name = models.CharField(max_length=100)
        following = ...
        followers = ...
        friends = ...
    
        def get_following(self):
            if not self.following:
                return "-"
            return self.following
    

    在你的 admin.py 中你只需输入方法的名称

    @admin.register(Application)
    class ApplicationAdmin(admin.ModelAdmin):
    
      list_display = [
            'name',
            'get_following',
            ...
           ]
    

    【讨论】:

    • 完美运行。唯一的缺点是我得到了 ]>。不知道如何摆脱额外的词,如查询集。我想我错过了一些东西。但是您的解决方案非常完美。
    • @Stryker,如果您向我展示您的应用程序模型类,我可以为您提供帮助。
    • 如果你能找到它,就在这里。 gist.github.com/dariushazimi/e00375174f99dd763bf2012e00a35e92
    • 是的,我可以看到。所以你想在你的管理员中显示一个列表,比如关系或?
    • 关系很好。问题是,当列表显示中有一个值时,它会像 一样显示它,而不仅仅是值。我认为问题在于返回字符串或其他东西
    猜你喜欢
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 2012-12-29
    • 2013-03-07
    • 2020-09-26
    • 2017-03-13
    • 2012-01-08
    相关资源
    最近更新 更多