为了解决django-admin中缺少嵌套内联的问题,我将特殊情况放入两个模板中,以便在管理员更改页面和两个模型的内联管理员之间创建链接.
我的问题是:如何创建一个链接,从管理员更改页面或内联管理员的一个模型到管理员更改页面或相关模型的内联管理员干净利落,模板中没有讨厌的黑客?
我想要一个通用的解决方案,我可以应用于任何模型的管理员更改页面或内联管理员.
我有一个模型,post(不是它的真实姓名)既是blog管理页面上的内联,也有自己的管理页面.它不能仅仅是内联的原因是它具有带有外键的模型,只有在用它编辑时才有意义,并且只有在编辑时才有意义blog.
对于post管理页面,我更改了"fieldset.html"的一部分:
{% if field.is_readonly %}
<p>{{ field.contents }}</p>
{% else %}
{{ field.field }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
至
{% if field.is_readonly %}
<p>{{ field.contents }}</p>
{% else %}
{% ifequal field.field.name "blog" %}
<p>{{ field.field.form.instance.blog_link|safe }}</p>
{% else %}
{{ field.field }}
{% endifequal %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
创建指向blog管理页面的链接,其中blog_link是模型上的方法:
def blog_link(self):
return '<a href="%s">%s</a>' % (reverse("admin:myblog_blog_change",
args=(self.blog.id,)), escape(self.blog))
Run Code Online (Sandbox Code Playgroud)
我找不到id了的blog …