Ada*_*dam 15 django django-models django-admin
查看模型的管理员更改列表时,是否可以使与外键对应的列链接到其各自的页面?一个简单的例子是我有一个包含Bar作为外键的Foo对象.如果我正在查看Foo的管理员更改列表(并将其设置为在display_list列中包含Bar),则主列将链接到Foo实例的编辑页面,而Bar列将链接到Boo实例的编辑页面.我知道我可以覆盖使用的模板,但我很好奇是否有一个不需要的解决方案.
Dan*_*man 21
您可以定义要在changelist中使用的自定义方法,该方法返回链接的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
Run Code Online (Sandbox Code Playgroud)
你提出的问题有一个问题 - 如果Foo有一个Bar的外键,那么每个foo链接到一个单独的栏,所以你可以链接到该栏的编辑页面.但是,每个栏都链接到多个foos,因此要求链接到"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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3703 次 |
最近记录: |