我不是只谈论窗体或静态数据的自定义字段,我在谈论添加一个实际上有它自己的代码的部分。在字段集中有一个新的条目,但它不是引入新的字段,而是引入一些关于用户活动的小报告。如何将自定义栏目添加到admin/auth/user /(x)页面?
其实这个问题代表任何模型的更改页面。 Django文档告诉你如何覆盖这个页面的模板,但是没有添加一些python代码还有什么好处呢?
我不是只谈论窗体或静态数据的自定义字段,我在谈论添加一个实际上有它自己的代码的部分。在字段集中有一个新的条目,但它不是引入新的字段,而是引入一些关于用户活动的小报告。如何将自定义栏目添加到admin/auth/user /(x)页面?
其实这个问题代表任何模型的更改页面。 Django文档告诉你如何覆盖这个页面的模板,但是没有添加一些python代码还有什么好处呢?
您可以覆盖默认模板和默认视图。
Django有两种不同的视图和用于管理记录显示的模板。一个用于创建一个新的,一个用于显示现有的并编辑它。相关的方法有:
这是如何准备相关的越权访问量为例(取from Add/Change View链接)
class MyModelAdmin(admin.ModelAdmin):
# A template for a very customized change view:
change_form_template = 'admin/myapp/extras/openstreetmap_change_form.html'
def get_osm_info(self):
# ...
pass
def change_view(self, request, object_id, form_url='', extra_context=None):
extra_context = extra_context or {}
extra_context['osm_data'] = self.get_osm_info()
return super(MyModelAdmin, self).change_view(request, object_id,
form_url, extra_context=extra_context)
你m ust检查默认的django添加和更改django源代码中的模板(也可能将其复制为新模板并在之后进行编辑)以查看如何准备自定义模板。
最后一点,决不编辑Django的模板或vieew代码直接从源,因为它们是由许多不同的应用和更新,并使用Django的源代码可能会覆盖您的修改或可能引起问题。
Django管理员在覆盖模板之外是非常具有可扩展性的。
请确保您查看文档中的ModelAdmin methods部分。 您可以修改ModelAdmin的几乎任何行为。
您还应该查看custom form validation和ModelForms文档,因为附加到其ModelAdmin的模型的自定义表单为您提供了另一种(更深层次,在大多数情况下)自定义级别。
谢谢。你为我节省了很多时间。 –