gpt4 book ai didi

django - 更改列表链接到外键更改页面

转载 作者:行者123 更新时间:2023-12-03 20:22:07 24 4
gpt4 key购买 nike

查看模型的管理更改列表时,是否可以将与外键对应的列链接到各自的页面?一个简单的例子是我有一个包含 Bar 作为外键的 Foo 对象。如果我正在查看 Foo 的管理更改列表(并将其设置为在 display_list 列中包含 Bar),则主列将链接到 Foo 实例的编辑页面,而 Bar 列将链接到 Boo 实例的编辑页面。我知道我可以覆盖使用的模板,但我很好奇是否有不需要的解决方案。

最佳答案

您可以定义一个自定义方法以在返回链接的 HTML 的更改列表中使用。

from django.core.urlresolvers import reverse

class MyFooAdmin(admin.ModelAdmin):
list_display = ('foo', 'bar_link')

def bar_link(self, obj):
url = reverse('admin:myapp_bar_change', args=(obj.pk,))
return '<a href="%s">Edit Bar</a>' % url
bar_link.allow_tags = True

如上所述,您的问题存在一个问题 - 如果 Foo 有 Bar 的外键,则每个 foo 都链接到一个栏,因此您可以链接到该栏的编辑页面。但是,每个栏都链接到多个 foo,因此请求指向“Foo 实例的编辑页面”的链接是没有意义的。您可以做的是链接到 Foo 的更改列表页面,并将过滤器设置为仅显示链接到此栏的实例:
    def foo_link(self, obj):
url = reverse('admin:myapp_foo_changelist')
return '<a href="%s?bar=%s">See Foos</a>' % (url, obj.pk)
foo_link.allow_tags = True

关于django - 更改列表链接到外键更改页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1413830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com