如link-in-django-admin-to-foreign-key-object中所述,可以显示ForeignKey字段作为管理详细信息页面的链接.
总结一下,
class Foo(Model):
bar = models.ForeignKey(Bar)
class FooAdmin(ModelAdmin):
list_display = ('link_to_bar',)
def link_to_bar(self, obj):
link = urlresolvers.reverse('admin:app_bar_change', args=[obj.bar_id])
return u'<a href="%s">%s</a>' % (link, obj.bar) if obj.bar else None
link_to_bar.allow_tags = True
Run Code Online (Sandbox Code Playgroud)
问题是:我们可以更自动地做到吗?例如,向FooAdmin定义提供要显示为详细信息页面链接的外键列表:
class FooAdmin(ModelAdmin):
...
list_foreign_key_links = ('bar',)
...
Run Code Online (Sandbox Code Playgroud)
我知道这些ModelAdmin类是使用元类编程生成的.那么,它应该是可能的.这样做有什么好的开始?