Django表格内联显示

标签 django django-forms django-admin

是否可以更改内联的显示,以便将其更改为 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 实例中设置 extramax_num 以防止管理员渲染多行内联,例如:

class SomeInlineAdmin(admin.TabularInline):
    model = Foo
    extra = 1
    max_num = 1

我无法打开您的第二个链接,您可以在问题中发布内容,而不是使用外部链接。

关于Django表格内联显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9963098/

相关文章:

python - 如何使用 django.forms Textarea 添加额外字段

python - 如何从 django 管理表单提交访问 request.FILES?

python - 从 api 请求中获取模型对象

python - Django - 权限和配置文件

python - 将 Django 指向不同的模板目录

python - @login_required 之后的 Django 重定向到下一个

django - 在django-admin内联表单上验证删除

python - 模型中有一个名为 'created' 的字段 - Django

django - 修复表单 View 以隐藏 django 中经过身份验证的用户字段

Django:如何向执行管理操作的管理更改表单页面添加自定义按钮?