如何在Django中为TabularInline管理表单集创建自定义模板?

时间:2018-05-09 15:17:46

标签: django django-templates

在我的Django应用程序(研究数据库)中,当更改管理员中的人物对象时,我希望该人员的所有来源都被列为该源文件的超链接。我试图通过为堆叠内联创建自定义模板来实现此目的。到目前为止,这是自定义模板:

git checkout commit -- file

很多这只是让我看到发生了什么。我使用了链接herehere作为指南。从git checkout呈现的内容是您对内联元素的期望 - 一个下拉菜单,其中源名称为选项,一些图标用于添加/更改。

For clarity.

然而,我真正想要的只是作为超链接呈现的源名称。如何从Django模板语言(即“字段”对象)中获取源名称(属性的实际名称是<p>Testing</p> {% for form in inline_admin_formset %} {% for fieldset in form %} <h5>Fieldset</h5> {% if fieldset.name %} <h2>{{ fieldset.name }}</h2>{% endif %} {% for line in fieldset %} <h6>Line</h6> {% for field in line %} <h6>Field</h6> {{ field.field }} {% endfor %} {% endfor %} {% endfor %} {% endfor %} )?

1 个答案:

答案 0 :(得分:1)

在该上下文中,{{ field.field }}BoundField对象,值方法可能就是您想要使用的方法,就像在{{ field.field.value }}中一样。

更多Django-ish方法(并且更复杂)可能涉及创建仅显示文本的自定义窗口小部件(从子类化one of their built-ins开始),然后将其挂钩到{{1}中使用的窗体中为你的模型。我觉得那里有一个兔子洞,就需要将ModelAdmin以及可能还有一些其他链接子类化而言......我看到了BaseInlineFormset class有一个在BaseFormSet方法中引用的.form属性,但是那里的东西有些模糊不清。

查看过去的帖子可能也很有用:Override a form in Django admin