未知

dingo的Python项目详细描述


dingo是一个Django应用程序,它扩展了Django Admin 允许为模型类和 实例。Dingo还允许您自定义第三方的管理员 参与方应用程序,无需子类化或修改原始应用程序 源代码树。

功能

  • 在模型或 对象级别。
  • 将自定义项注入第三个 不修改原始代码基的参与方应用程序。

用法

要使用dingo,请确保它位于python路径上,并将其添加到 INSTALLED_APPSsettings.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,上面的基于函数的示例将起作用 如所愿。请注意,需要导入代码以确保 正确注册。

缺少功能/错误

  • 模型视图的开发程度明显低于实例视图。
  • 不同管理站点中的模型的不同操作不是 当前支持。为了适应这种情况,一个站点本地操作 需要使用注册表。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
datetime如何使用JodaTime在Java中设置时间属性   java固定算法的性能时间   java如何从JMenu中获取所选项以更改文本区域的文本颜色?   java配置单元UDF传递数组<string>作为参数   javaapachebeam和BigQuery   java与PrintWriter之间的差异。printf和PrintWriter。格式方法   继承如何处理按Java版本更改的导入,以及在多个版本上编译   xml java。lang.noClassDefFoundant生成错误   java如何使用包含映射的JSON发送POST请求?   java如何在任何应用程序的JAR文件中绑定MySql数据库?   Java脚本解释器   sslhttpclientjava。网SocketException:未实现未连接的socket   java如何为Android应用程序创建类似于Cron作业的东西   java JButton+radiobox+复选框   java内存管理将文件写入内存   java这是计算对象实例的有效方法吗?   用于死锁情况的java代码?   JavaSpring容器作为新实体插入,而不是存储在表中