是否可以更改内联的显示以将其更改为this?我正在考虑更改管理模板文件“tabular.html”,是否可以或者我应该更改其他内容?
更新
好的,我一直在尝试编辑tabular.html,但我对Django的体验还不足以理解如何/在哪里进行必要的更改......任何关于我应该从哪里开始的线索? 我不应该也在改变CSS吗? 我想{{field.field}}会自动呈现下拉菜单(Django admin default),如果我理解正确的话......
更新2
我能够将第二列更改为我想要的功能,但我认为对于第一列,它会变得更加棘手......当前status
更新3
我认为可行的一个hack是在每个内联中仅显示第一个字段的一个选项,然后停用“添加另一个选项”。如何迭代“tabular.html”中的选项?
更新4
我想这个诀窍应该在这里完成......我如何迭代字段选择以便每行只显示一个选项?
{% for fieldset in inline_admin_form %}
{% for line in fieldset %}
{% for field in line %}
{{ field.get_choices_display }}
<td class="{{ field.field.name }}">
{% if field.is_readonly %}
<p>{{ field.contents }}</p>
{% else %}
{{ field.field.errors.as_ul }}
{{ field.field }}
{% endif %}
</td>
{% endfor %}
{% endfor %}
{% endfor %}
答案 0 :(得分:4)
是的,您可以将InlineModelAdmin实例的template
更改为自定义模板,例如customized_inline.html
。只需将django / django / contrib / admin / templates / admin / edit_inline / tabular.html复制到模板路径中的customize_inline.html即可。
修改强> 的
也许我误会了。如果要更改表单字段的呈现样式,通常的方法是更改其widget。在Django ModelAdmin和InlineModelAdmin中,自定义字段小部件的主要方法是在BaseModelAdmin.formfield_for_dbfield
内部使用django/contrib/admin/options.py
方法,在您想要更改表单字段的窗口小部件时读取代码和the doc。
对于有选择的字段,您只需在ModelAdmin / InlineModelAdmin实例中设置radio_fields即可将字段呈现为无线电选择而非下拉列表。
此外,使用OneToOneField而不是ForeignKey,或在InlineModelAdmin实例中设置extra
和max_num
以防止管理员呈现多行内联,例如:
class SomeInlineAdmin(admin.TabularInline):
model = Foo
extra = 1
max_num = 1
我无法打开您的第二个链接,您可以在问题中发布内容而不是使用外部链接。