📜  在 django admin 中编辑模型 - Python (1)

📅  最后修改于: 2023-12-03 14:50:54.095000             🧑  作者: Mango

在 Django Admin 中编辑模型

Django Admin 是一个内置的后台管理界面,允许程序员快速创建一个用于管理模型的可视化界面,包括增删改查等操作。本文将介绍如何在 Django Admin 中编辑模型。

创建模型

首先,我们需要创建一个模型。这可以通过 Django 的模型系统完成。以下是一个示例模型:

from django.db import models

class Foo(models.Model):
    name = models.CharField(max_length=20, blank=True)
    value = models.IntegerField(default=0)

    def __str__(self):
        return self.name
注册模型

要在 Django Admin 中编辑模型,我们需要先注册模型。这可以通过在 admin.py 文件中完成。以下是一个示例:

from django.contrib import admin
from .models import Foo

admin.site.register(Foo)

现在,如果我们启动服务器并访问 /admin 页面,我们将看到一个名为 "Foos" 的链接。单击链接将导航至一个空列表页面。

编辑模型

现在我们已经注册了我们的模型,我们可以开始编辑它了。我们可以在 admin.py 文件中添加新的类来定义 Foo 模型的编辑界面。以下是一个示例:

class FooAdmin(admin.ModelAdmin):
    list_display = ('name', 'value')
    fields = ('name', 'value')

admin.site.register(Foo, FooAdmin)

在这个示例中,我们创建了一个名为 FooAdmin 的新类,并将其作为第二个参数传递给 admin.site.register() 函数。这个类定义了一个显示 namevalue 列表的列表页,并允许用户编辑 namevalue 字段的表单页。

定制编辑页面

除了上述基础编辑功能之外,Django Admin 允许通过定义各种函数来定制编辑页面。以下是一些常见的函数:

list_display

定义在列表页中显示的列。以下是一个示例:

class FooAdmin(admin.ModelAdmin):
    list_display = ('name', 'value')

在这个示例中,我们定义了一个仅包含 namevalue 列的列表。

fields

定义在表单页面中显示的字段。以下是一个示例:

class FooAdmin(admin.ModelAdmin):
    fields = ('name', 'value')

在这个示例中,我们定义了一个仅包含 namevalue 字段的表单页面。

search_fields

允许用户在搜索栏中搜索模型。以下是一个示例:

class FooAdmin(admin.ModelAdmin):
    search_fields = ['name']

在这个示例中,我们定义了一个仅包含 name 字段的搜索栏。

list_filter

定义过滤器,该过滤器将显示在页面中。以下是一个示例:

class FooAdmin(admin.ModelAdmin):
    list_filter = ('name', 'value')

在这个示例中,我们定义了一个将显示 namevalue 列过滤器的页面。

结论

在 Django Admin 中编辑模型是一个非常简单和快速的过程,可以为您的应用程序提供一个可视化界面,方便用户管理数据。通过使用以上介绍的定制函数,您可以进一步定制编辑页面,以完全符合您的需求。