Добавление url к полю в TabularInline в админке Django
Как сделать ссылки из полей для TabularInline? На данный момент я реализую это (источник: https://stackoverflow.com/a/10011307/9112151):
class Post(models.Model):
title = models.CharField(max_lenght=100)
author = models.ForeignKey('User', on_delete=models.CASCADE)
def add_link_field(target_model = None, field = '', link_text = unicode):
def add_link(cls):
reverse_name = target_model or cls.model.__name__.lower()
def link(self, instance):
app_name = instance._meta.app_label
reverse_path = "admin:%s_%s_change" % (app_name, reverse_name)
link_obj = getattr(instance, field, None) or instance
url = reverse(reverse_path, args = (link_obj.id,))
return mark_safe("<a href='%s'>%s</a>" % (url, link_text(link_obj)))
link.allow_tags = True
link.short_description = reverse_name + ' link'
cls.link = link
cls.readonly_fields = list(getattr(cls, 'readonly_fields', [])) + ['link']
return cls
return add_link
@add_link_field('author')
class PostInline(admin.TabularInline):
model = Post
Возможно, есть встроенное решение?
Установите show_change_link = True
на вашем инлайне, чтобы отобразить ссылку на форму изменения администратора для инлайнового объекта
class PostInline(admin.TabularInline):
model = Post
show_change_link = True