【问题标题】:django - Need references to another model from list_displaydjango - 需要从 list_display 引用另一个模型
【发布时间】:2016-08-12 23:30:35
【问题描述】:

当我点击作者字段时,我需要被点击的作者模型管理员引用 - 怎么做?

class BookAdmin(admin.ModelAdmin):
     list_display = ['name', 'pub_date', 'author',]

【问题讨论】:

    标签: python django django-admin


    【解决方案1】:

    在管理类中

       def author_link(self, obj):
            return '<a href="/admin/authors-appname/author-model-name/%s">%s</a>' \
                   % (obj.auther.pk, obj.auther)
        author_link.allow_tags = True
        author_link.short_description = "auther"
    
        list_display = ['name', 'pub_date', 'author_link',]
        readonly_fields = ('author_link', )
    

    更优雅的是将硬链接更改为模型中的函数 - get_auther_absolute_url 并从管理员调用它

    【讨论】:

      【解决方案2】:

      关于这个有几个答案,即:

      Change list link to foreign key change page

      Link in django admin to foreign key object

      引用上述内容,您需要做的是定义自己的方法,将其称为 go_to_author() 作为 BookAdmin 类的一部分,因此

      class BookAdmin(admin.ModelAdmin):
          list_display = ['name', 'pub_date', 'go_to_author',]
          def go_to_author(self, obj):
              link=urlresolvers.reverse("admin:yourapp_author_change", args=[obj.author.id])
              return u'<a href="%s">%s</a>' % (link, obj.author.name)
          go_to_author.allow_tags=True
      

      我希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-12
        • 1970-01-01
        • 1970-01-01
        • 2019-09-04
        • 2011-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多