django - 如何覆盖管理模板

时间:2016-06-28 01:17:05

标签: django-admin

我想更改添加新对象页面在管理页面中的显示方式。 我不想改变字段但想要排列输入,例如在第一行上的2个字段,然后是一些段落,然后是另外两个字段。 我读到了 add_form_template ,我的猜测是,这应该允许我在不定义表单的情况下更改模板。 这是我的尝试,没有显示字段: 有谁知道我是否需要定义表单并传递它以及如何? 如果我必须传入表单,那么add_form_template用于什么?

from settings import BASE_DIR
import os

@admin.register(Owner)
class OwnerAdmin(admin.ModelAdmin):
    add_form_template = os.path.join(BASE_DIR, 'dealer/templates/add_owner.html')
    list_display = ('name', 'country', 'city', 'car')


@admin.register(Car)
class CarAdmin(admin.ModelAdmin):
    list_display = ('name',)

//----- add_owner.html
{% extends "admin/base.html" %}

{% block content %}
    <h1>New Owner</h1>
    <form method="POST" class="post-form">{% csrf_token %}
        {{ form.as_p }}
        <button type="submit" class="save btn btn-default">Create</button>
    </form>
{% endblock %}

1 个答案:

答案 0 :(得分:1)

您无需更改管理模板即可自定义字段的布局。请改用fieldsets

<ItemDefinitionGroup>
  <Content>
    <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  </Content>
</ItemDefinitionGroup>