Django覆盖Admin的change_form.html模板——在模板中显示关联模型

17

我有一个情况,我已经覆盖了给定模型的admin_change.html模板。我创建了一个文件,例如:

/myproject/templates/admin/myapp/mymodel/change_form.html

然后,在覆盖的change_form.html模板中,当我正在编辑一个现有的对象实例时,我想要访问该模型实例变量,以便我可以显示更多关于它的信息。

{% extends "admin/change_form.html" %}
{% block after_field_sets %}{{ block.super }}
Print my model here: {{ mymodel }}
Print foreignkey related records of my model:  
    {% for item in mymodel.items_set.all %} {{ item }} {% endfor %}
{% endblock %}

然而,我不知道应该使用什么模板变量来访问这个模型(如果它被传递的话)。我试图深入挖掘管理源代码,但很快就迷失了。有人知道如何从扩展的Django模板中访问此模型实例变量吗?

(注意:在上面的代码中,对{{ mymodel }}的引用是不正确的。但重点是我想能够在我的模板代码中使用类似的变量来引用mymodel实例。)

非常感谢任何建议。 谢谢, Joe

2个回答

21

看起来我找到了一种使用这个语法来实现的方法。

{% extends "admin/change_form.html" %}
{% block after_field_sets %}{{ block.super }}
Print my model here {{ original }}
Print foreignkey related records of my model:
{% for item in original.items_set.all %} {{ item }} {% endfor %}
{% endblock %}

很抱歉这么快就回答了,但感谢任何开始研究的人。也许有人会找到这个有用。如果您发现更好的方法,请随意评论。


原始是代表正在更改表单中的对象的变量。例如,如果您正在查看/admin/auth/user/,那么原始将是一个用户实例。 - Joe J
1
有人知道在哪里可以找到关于“original”的文档吗? - pizzarob

19

仅仅是轻轻地探索,似乎 {{adminform.form.instance}} 可以使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接