未知
dingo的Python项目详细描述
dingo是一个Django应用程序,它扩展了Django Admin 允许为模型类和 实例。Dingo还允许您自定义第三方的管理员 参与方应用程序,无需子类化或修改原始应用程序 源代码树。
功能
- 在模型或 对象级别。
- 将自定义项注入第三个 不修改原始代码基的参与方应用程序。
用法
要使用dingo,请确保它位于python路径上,并将其添加到 INSTALLED_APPS在settings.py中设置。注意野狗必须 在django.contrib.admin之前安装,因为它替换了 默认的AdminSite,其中一个将插入 ModelAdmin类已注册。
野狗需要django 1.2或更高版本。
模型与对象
dingo可用于注册模型或对象的视图。意见 注册的模型并不特定于模型的任何实例; 可以认为它们类似于django管理操作 [可能]空查询集。实例视图在单个模型上操作 实例;您可以认为它们类似于 对单个对象而不是queryset进行操作。
野狗的观点与admin actions有几个微妙的不同之处。 最重要的区别是它们可能被注入 不需要对应用程序进行子分类或修改的参与方应用程序 代码。默认情况下,dingo视图也有不同的用户界面。 Dingo包含替换管理模板,该模板将Dingo视图显示为 更改列表右上角的按钮和更改 形成视图。
添加视图
如果要使用dingo将模型或对象视图添加到模型的 管理员,您可以将它们定义为 模型管理员。
例如,要将视图定义为函数:
import dingo import dingo_test.models @dingo.object_view(dingo_test.models.RstDocument) @dingo.short_description("Render") def render(model_admin, request, object_id): from django.shortcuts import redirect document = dingo_test.mdoels.RstDocument.objects.get(id=object_id) return Response()
同样的视图也可以是modeladmin上的一个方法:
class RstDocumentAdmin(ModelAdmin): @dingo.object_view(dingo_test.models.RstDocument) @dingo.short_description("Render") def render(self, request, object_id): pass
注意,short_descriptiondecorator的使用定义了 在管理用户界面中使用的标签,在本例中是可选的。 如果没有提供描述,dingo将格式化函数或 方法名,类似于django为 模型。
向第三方应用程序添加视图
只要野狗在INSTALLED_APPS之前 django.contrib.admin,上面的基于函数的示例将起作用 如所愿。请注意,需要导入代码以确保 正确注册。
缺少功能/错误
- 模型视图的开发程度明显低于实例视图。
- 不同管理站点中的模型的不同操作不是 当前支持。为了适应这种情况,一个站点本地操作 需要使用注册表。