Django Admin 字段值默认修改

Django Admin 字段值默认修改

Django Admin 字段值默认修改

在使用Django开发网站时,有时候我们需要在后台管理界面(admin)对某些字段的默认值进行修改。这样可以节省我们在创建新对象时输入重复的数据,提高工作效率。本文将详细介绍如何在Django Admin中修改字段的默认值。

在模型中设置默认值

在Django中,我们可以通过在模型类中设置字段的默认值来实现在创建新对象时自动填充该字段。例如,我们有一个名为Book的模型类,其中包含titleauthor两个字段,我们希望在创建新书籍时author字段默认值为”Unknown”。我们可以这样定义这个模型类:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50, default="Unknown")

在上面的示例中,我们在author字段中设置了default="Unknown",这样在创建新的Book对象时,如果没有指定author字段的值,Django会自动将其填充为”Unknown”。

在Admin中修改字段默认值

为了在Admin中修改字段的默认值,我们需要定制Admin表单。我们可以通过在Admin中覆盖formfield_for_dbfield方法来实现修改字段默认值的功能。

以下是一个示例,假设我们有一个BookAdmin类来管理Book模型类,并且我们希望在创建新书籍时author字段的默认值为”Admin”,我们可以这样做:

from django.contrib import admin
from .models import Book

class BookAdmin(admin.ModelAdmin):
    def formfield_for_dbfield(self, db_field, **kwargs):
        formfield = super().formfield_for_dbfield(db_field, **kwargs)
        if db_field.name == 'author':
            formfield.initial = "Admin"
        return formfield

admin.site.register(Book, BookAdmin)

在上面的代码中,我们在BookAdmin中覆盖了formfield_for_dbfield方法,当遇到author字段时,将默认值设置为”Admin”。这样在Admin中创建新书籍时,author字段将会默认填充为”Admin”。

运行结果

通过以上的设置,我们在Django Admin中成功修改了author字段的默认值为”Admin”。在创建新书籍时,如果我们不指定author字段的值,Admin会自动将其填充为”Admin”。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程