Django管理员使用非相关模型进行自定义

时间:2012-04-20 17:05:01

标签: django

我是一个django noob,我正在试图弄清楚如何让管理模块做一些与单个模型上的正常操作略有不同的事情。基本上我需要的是运行查询并将查询结果显示为视图页面,然后允许链接到编辑页面,将用户带到现有模型的编辑视图。我的查询中的3个表中的2个是相关的,但不是全部3个。

示例:

select a.foo, a.second_field, b.bar, c.unrelated_field
from a, b, c
where a.primary_key = b.foreign_key
and a.some_value = c.some_value 

请注意,a和c未定义为相关表格。

我想查看此查询输出,并在选中时链接到b模型的编辑视图作为一个整体。

我在数据库中为这个查询创建了一个视图,并简单地创建了一个新模型,这样可以很容易地获得视图,但我不确定这是否是正确的方法开始......但是从那里开始我似乎无法弄清楚如何链接到B表的编辑页面。

有关如何使用django admin最好地完成此类任务的任何指示或建议将不胜感激!

顺便使用Django 1.3.1。

干杯!

1 个答案:

答案 0 :(得分:0)

您可以覆盖change_view中的ModelAdmin,以便构建包含所有所需数据的词典列表。然后覆盖change_list.html模板以正确显示此数据,并将其与change_form视图关联以获取正确的模型。因此它将完美地集成在Django的管理站点中。

我不喜欢DB视图,只要没有它就可以解决问题。如果数据可以在Python中构建而没有大量的性能差距和大量的魔术代码,那么它应该在Python中进行处理。