关于扩展django管理模板的一个(不是这样)快速问题。
我试图通过在结果行(row1和row2类)之间添加一个包含一些与该对象相关的对象的中间行来更改特定模型的结果列表(在django lingo中更改列表)。
我搜索了代码,但没有找到一种方法来执行此操作。非常感谢任何指针。代码也将有所帮助。
PS:我知道我应该设计自己的界面,但这是一个内部项目,我没有太多时间可以花时间。另外,django界面真的很棒。
先感谢
第1步:覆盖变更列表视图:
你必须覆盖模板,而不是像那样指定模板add_view / change_view
。
首先,def changelist_view(self, request, extra_context=None):
在中优先ModelAdmin
。请记住打电话super(foo, self).changelist_view(request, extra_context)
并退回。
第2步:覆盖模板:
接下来,在处覆盖特定于应用程序的更改列表模板templates/admin/my_app/my_model/change_list.html
(或者,如果需要,你也可以使用全局更改列表覆盖)。
第3步:复制结果列表功能
我想你可以复制result_list
功能(定义新的模板标签),也可以通过将result_list函数和包含的模板复制并粘贴到视图中来进行伪造。
# django.contrib.admin.templatetags.admin_list
def result_list(cl):
"""
Displays the headers and data list together
"""
return {'cl': cl,
'result_hidden_fields': list(result_hidden_fields(cl)),
'result_headers': list(result_headers(cl)),
'results': list(results(cl))}
result_list = register.inclusion_tag("admin/change_list_results.html")(result_list)
你可以看到管理员使用此admin/change_list_results.html
模板来呈现各个列,因此你需要使用一种方法来替换此模板标记。
由于它正在寻找全局模板,因此我不会覆盖它。
为你的视图定义一个带有新模板的新标签,或者result_list(cl)
直接发送到你的模板并在模板中直接admin/change_list_results.html
使用该标签change_list.html
。
问题内容: 我已经创建了Django网站,但是我喝了Koolaid,并且想要创建iPhone版本。经过深思熟虑后,我提出了两种选择: 制作其他网站,例如i.xxxx.com。使用Django的站点框架将其绑定到同一数据库中。 寻找一些中间件时间来读取用户代理,并动态更改模板目录。 但是,我真的更喜欢选项2。我有所保留,主要是因为Django文档不鼓励动态更改设置。我发现了一个片段,可以满足我的需求
问题内容: 如何更改django管理员标头中的“ Django管理”文本? “自定义管理员”文档中似乎没有涉及它。 问题答案: 更新 :如果您使用的是Django1.7+,请参见以下答案。 从Django 1.7开始,您不需要覆盖模板。现在,您可以在自定义上实现,和属性,以便轻松更改管理站点的页面标题和标题文本。创建一个AdminSite子类,并将您的实例挂接到URLconf中: admin.py
问题内容: 如何更改django管理员标头中的“ Django管理”文本? “自定义管理员”文档中似乎没有涉及它。 问题答案: 更新:如果你使用的是Django 1.7+,请参见以下答案。 2011年的原始答案: 你需要创建自己的管理模板才能执行此操作。最简单的方法是创建文件: 这应该是原始base_site.html文档的副本,但要输入你的自定义标题: 为此,你需要对项目进行正确的设置,即: 确
使用焊接1.1.13。最终在测试与Arquillian...... 假设我向一个字段注入了一些不稳定的东西。比如一个受更改影响的属性,我希望拥有注入点的bean接收更改事件。考虑创建一个CDI扩展。 捕获ProcessAnnotatedType事件并查找在字段注入点上具有自定义注释的所有字段: 之后,他甚至抓取了字段的所有注入点,并用对应于“包装器”类型的新字段替换了底层的WeldField。否则
我正在尝试为我正在工作的网站添加对阿拉伯语的支持,所以目前我的模板是这样的 无论如何,django-allauth 都会尝试从 / 加载模板(在他们的视图中是硬编码的),但我想在必要时基于上下文变量加载 RTL(从右到左)版本,所以我考虑了四个解决方案,但它们对我来说似乎都不够好(我不是说我不会这样做, 我是说我找不到更好的方法,如果有的话) > < li> 在“我的覆盖”中设置一个条件以加载LT
我的模板中当前有以下代码: 其中是测试套件的名称,是该测试套件中失败测试用例的列表。我想知道如何才能改变到类似于其中在循环的每次迭代中递增。 UPDATE 在尝试@Gocht的答案后,我有以下代码: 在我的模板标签/get_percentage.py文件中 在我的模板中 我遇到了“字符串索引超出范围”错误。我试图寻找可能的原因,但没有一个答案与自定义模板标记相关。