Django Admin -> 更改字段顺序,包括内联字段
Posted
技术标签:
【中文标题】Django Admin -> 更改字段顺序,包括内联字段【英文标题】:Django Admin -> Change Order of Fields, including Inline Fields 【发布时间】:2010-11-15 11:21:02 【问题描述】:我有一个“人”模型,它与其他模型具有一对多的关系,例如地址。我想在与 Person 相同的页面上编辑这些模型,我已经可以通过内联来完成。但我也想更改字段的顺序。
我希望(内联)字段“地址”成为列表中的第三项, 但是对于
字段('first_name'、'last_name'、'Adress_Inline'、'nationality'等) 我明白了: PersonAdmin.fields' 指的是表单中缺少的字段“Address_Inline”。
有没有办法改变字段的顺序并在“常规”模型字段之间获得某些内联字段?
谢谢!
【问题讨论】:
【参考方案1】:用户 django 字段集定义视图的字段顺序和添加/编辑对象视图。
class YourCustomClass(admin.ModelAdmin):
models = Your_Model
fieldsets = ((None, 'fields': ('image', 'name',)),)
add_fieldsets = ((None, 'fields': ('name', 'image',)),)
【讨论】:
【参考方案2】:每当 Django 呈现管理表单模板时,内联字段列表在变量中可用 inline_admin_formset ,您可以使用它在您自己的自定义 change_form.html 模板中的任何位置显示内联字段。
您必须扩展 change_form.html 模板才能做到这一点,没有其他办法。
【讨论】:
【参考方案3】:你可以用 javascript 做到这一点。您需要覆盖模板并可能添加一些 div 标签。然后对要复制的 div 进行硬编码,然后隐藏原始 div(使用内联)。 我希望这会有所帮助。
【讨论】:
【参考方案4】:您必须手动扩展管理模板 (change_form.html) 并将位置硬编码到其中。 AFAIK,您不能将内联表单集插入父表单的中间。
【讨论】:
以上是关于Django Admin -> 更改字段顺序,包括内联字段的主要内容,如果未能解决你的问题,请参考以下文章