首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django管理list_display_links到外键

Django管理list_display_links到外键
EN

Stack Overflow用户
提问于 2017-03-15 09:40:12
回答 2查看 7.8K关注 0票数 6

我在用Django 1.10。在admin中,有一个选项可以在Foreign上设置链接,这样当点击它时,页面就被重定向到Foreign对象。

在上图中,StyleID是一个外键。我希望Django管理员带我到Style表中的相应对象。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-15 11:04:05

list_display_links选项允许您选择链接到当前实例的字段。没有一个选项可以让这些链接指向相关实例。

您可以在模型管理类上创建一个呈现链接的方法,然后在list_display选项中包含方法名。

参见Django文档:反向管理URL

代码语言:javascript
复制
from django.contrib import admin
from django.utils.html import format_html

from django.urls import reverse
# Old import:
# from django.core.urlresolvers import reverse

class MyModelAdmin(admin.modelAdmin):
    def style_link(self, obj):
        url = reverse('admin:myapp_style_change', args=(obj.style_id,))
        return format_html("<a href='{}'>{}</a>", url, obj.style_id)
    style_link.admin_order_field = 'style'
    style_link.short_description = 'style'

    list_display = ['widget', 'style_link', ...]

admin_order_fieldshort_description属性不是必需的,而是改进了功能。有关它们的更多信息,请参见文档。

票数 21
EN

Stack Overflow用户

发布于 2019-12-19 06:11:12

如果您正在使用python3,并且希望这样做,下面是对上述内容的一些修改:

代码语言:javascript
复制
url = reverse('admin:myapp_style_change', args = [obj.style.id])
return format_html("<a href='{}'>{}</a>", url, obj.style.id)

代替obj.style.id,您可以使用您想要显示的模型的任何字段。例如,返回format_html("{}“、url、obj.style.name) )

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42805958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档