Если модель django содержит поле внешнего ключа, и если это поле отображается в режиме списка, то оно отображается как текст, а не отображается ссылка на посторонний объект.
Можно ли автоматически отображать все внешние ключи как ссылки вместо плоского текста?
(конечно, это можно сделать на поле по полю, но существует ли общий метод?)
Пример:
class Author(models.Model):
...
class Post(models.Model):
author = models.ForeignKey(Author)
Теперь я выбираю ModelAdmin так, что автор появляется в режиме списка:
class PostAdmin(admin.ModelAdmin):
list_display = [..., 'author',...]
Теперь в режиме списка поле автора будет использовать метод __unicode__
класса Author
для отображения автора. В верхней части этого я хотел бы ссылку, указывающую на URL соответствующего автора в админ-сайте. Возможно ли это?
Ручной метод:
Для полноты я добавлю ручной метод. Было бы добавить метод author_link
в класс PostAdmin
:
def author_link(self, item):
return '<a href="../some/path/%d">%s</a>' % (item.id, unicode(item))
author_link.allow_tags = True
Это будет работать для этой конкретной области, но это не, что я хочу. Я хочу, чтобы общий метод достигал такого же эффекта. (Одна из проблем заключается в том, как автоматически определить путь к объекту на сайте администратора django.)