【问题标题】:Django Override Admin change_form.html Template - display associated model in templateDjango Override Admin change_form.html 模板 - 在模板中显示关联模型
【发布时间】:2011-04-23 02:38:42
【问题描述】:

我有一种情况,我为给定模型覆盖了 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 实例。)

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

【问题讨论】:

    标签: django templates admin extend


    【解决方案1】:

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

    {% 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 %}
    

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

    【讨论】:

    • original 是一个变量,表示正在更改表单中编辑的对象。例如,如果您正在查看 /admin/auth/user/,那么 original 将是一个 User 实例。
    • 有谁知道在哪里可以找到original的文档
    【解决方案2】:

    随便看看,{{adminform.form.instance}} 好像有效。

    【讨论】:

      猜你喜欢
      • 2018-12-12
      • 2010-09-23
      • 1970-01-01
      • 2011-08-10
      • 2019-12-22
      • 2017-11-13
      • 1970-01-01
      • 2013-02-16
      • 2017-02-15
      相关资源
      最近更新 更多