如何在Django Admin中添加自定义视图

2023-04-11 00:00:00 视图 自定义 添加

在Django Admin中添加自定义视图,可以通过以下步骤完成:

  1. 创建一个Django应用程序,例如命名为“myapp”。

  2. 在“myapp”应用程序下创建一个名为“admin.py”的文件,并在文件中添加以下代码:

from django.contrib import admin
from django.urls import path
from django.shortcuts import render

def my_view(request):
    return render(request, 'my_template.html', {'name': 'pidancode.com'})

class MyAdminSite(admin.AdminSite):
    def get_urls(self):
        urls = super().get_urls()
        my_urls = [
            path('my_view/', self.admin_view(my_view), name='my_view')
        ]
        return my_urls + urls

admin_site = MyAdminSite()

# 注册模型
admin_site.register(MyModel)

# 管理器
@admin.register(MyModel, site=admin_site)
class MyAdmin(admin.ModelAdmin):
    pass

在上面的代码中,“my_view”函数是我们自定义的视图函数。在这个函数中,我们渲染了一个名为“my_template.html”的模板,并传递了一个名为“name”的变量,它的值为“pidancode.com”。您可以在模板中使用这个变量。

“MyAdminSite”类是我们自定义的管理站点类。我们覆盖了“get_urls”方法,并在其中添加了自定义视图的URL。

最后,我们创建了一个“admin_site”对象,并用它来注册模型和管理器。我们还可以在管理器中设置一些字段和操作等。

  1. 在“myapp”应用程序下创建一个名为“templates”的目录,并在其中创建一个名为“my_template.html”的模板文件。在该模板文件中添加以下代码:
<!DOCTYPE html>
<html>
<head>
    <title>My Template</title>
</head>
<body>
    <h1>Welcome to {{ name }}</h1>
</body>
</html>

在上面的代码中,我们使用了“{{ name }}”变量,它的值是从视图函数中传递过来的。

  1. 运行Django服务器,并访问http://localhost:8000/admin/myapp/my_view/,您应该能够看到自定义视图的内容。

以上就是在Django Admin中添加自定义视图的完整步骤和代码演示。

相关文章