是否可以更改内联的显示,以便将其更改为 this ?我正在考虑更改管理模板文件“tabular.html”,是否可行或者我应该更改其他内容?
更新
好吧,我一直在尝试编辑 tabular.html,但我使用 Django 的经验不足以理解如何/在哪里进行必要的更改...我应该从哪里开始有任何线索吗? 我不应该也改变CSS吗? 我想如果我理解正确的话, {{ field.field }} 会自动呈现下拉菜单(Django 管理默认)...
更新2
我能够将第二列更改为我想要的功能,但我认为对于第一列来说,它会更棘手......当前 status
更新3
我认为可行的一个技巧是在每个内联上仅显示第一个字段的一个选项,然后停用“添加另一个选项”。如何迭代“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 %}
最佳答案
是的,您可以将 InlineModelAdmin 实例的 template
更改为您的自定义模板,例如 customized_inline.html
。只需将 django/django/contrib/admin/templates/admin/edit_inline/tabular.html 复制到模板路径中的customized_inline.html 即可。
编辑
也许是我的理解有误。如果要更改表单字段的渲染样式,通常的方法是更改其 widget 。在Django ModelAdmin和InlineModelAdmin中,自定义字段小部件的主要方法是围绕django/contrib/admin/options.py
中的BaseModelAdmin.formfield_for_dbfield
方法,读取代码和the doc当您想要更改表单字段的小部件时。
对于有选择的字段,您只需在 ModelAdmin/InlineModelAdmin 实例中设置 radio_fields 即可将字段呈现为单选而不是下拉列表。
此外,使用 OneToOneField 而不是foreignkey,或者在 InlineModelAdmin 实例中设置 extra
和 max_num
以防止管理员渲染多行内联,例如:
class SomeInlineAdmin(admin.TabularInline):
model = Foo
extra = 1
max_num = 1
我无法打开您的第二个链接,您可以在问题中发布内容,而不是使用外部链接。
关于Django表格内联显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9963098/