1

根据文档:

http://django-grappelli.readthedocs.org/en/latest/customization.html#rearrange-inlines

占位符的两个类很重要。首先,您需要一个类占位符。第二个类必须匹配 inline-group 的 id。

一切都很好,我能够很好地设置我的内联,我现在的问题是 - grappelli 在哪里获得“内联组的 ID”我找不到任何参考,并且倾注源代码给我没有慰藉。

简单地说,我想更改 grappelli 正在使用的元素 ID。目前,在我看来,它正在获取对象名称本身并转换为小写名称并将 set 附加到末尾。我们是否有权覆盖“内联组的 ID”?

此外,我不能 100% 确定 grappelli 是如何(或在何处)这样做的,它绝对没有记录在案……事实上。

任何帮助将非常感激。

4

2 回答 2

2

它是 HTML 页面上内联元素的 id。您可以检查默认 HTML 内联元素的 id。

 <div id="[related_name of ForeignKey]-group">

例如:如果在模型“MyModel2”中,你有一个这样的 ForeignKey:

my_model_1 = models.ForeignKey(MyModel1, related_name='my_model_2')

那么 id 应该是“my_model_2-group”。

于 2015-08-04T08:05:44.657 回答
0

内联组的 id 在grappelli/templates/admin/edit_inline、stacked.html 第 5 行或 tabular.html 第 6 行中设置(取决于您使用的内联类型):

id="{{ inline_admin_formset.formset.prefix }}-group" >

您可以通过将文件(stacked.html 或 tabular.html)复制到您的模板目录并将变量“模板”设置为文件的新位置来覆盖它,例如:

# admin.py

class MyModelInline(admin.StackedInline):
    template = 'path/to/stacked.html'
    ...

然后在stacked.html 中编辑您想要的任何内容。

我不知道这是否是这样做的最佳实践方式,但它类似于 django 教程中所做的。

于 2014-07-04T18:53:35.040 回答