将 url 添加到 Django admin 中 TabularInline 中的字段
Posted
技术标签:
【中文标题】将 url 添加到 Django admin 中 TabularInline 中的字段【英文标题】:Add url to a field in TabularInline in Django admin 【发布时间】:2021-12-25 11:22:43 【问题描述】:问题不是真实的
如何为 TabularInline 创建来自字段作者的链接?现在我实现了这个(来源:https://***.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
也许有内置的决定?
【问题讨论】:
【参考方案1】:Set show_change_link = True
显示内联对象的管理员更改表单的链接
class PostInline(admin.TabularInline):
model = Post
show_change_link = True
【讨论】:
谢谢。但我需要在 inline 中显示指向作者的链接 @АльбертАлександров 作者应该呈现为选择/下拉菜单,并且旁边应该有一个铅笔和加号图标?这些图标链接到作者/用户的添加和编辑表单,这不是你想要的吗? 它应该是只读的。只是作者更改视图的链接 了解如何。谢谢以上是关于将 url 添加到 Django admin 中 TabularInline 中的字段的主要内容,如果未能解决你的问题,请参考以下文章
从 1.8 升级到 1.9 Django Admin get_urls 不起作用