gpt4 book ai didi

python - 如何在创建许多对象的 Django admin 中创建自定义按钮?

转载 作者:行者123 更新时间:2023-12-05 03:29:59 29 4
gpt4 key购买 nike

我有一个模范学生:

from django.db import models
from django.contrib import admin


class Student(models.Model):
name = models.CharField(max_length=30, default='')
lastname = models.CharField(max_length=30, default='')
grade= models.CharField(max_length=8, default='')

class StudentAdmin(admin.ModelAdmin):
list_display= ('name','lastname','grade')

from django.contrib import admin
from .models import *

admin.site.register(Student, StudentAdmin)

想象一下,我有一个额外的模型 Person(带有 namesurname 字段)。我的情况只是一个例子。我想在 Django 管理中创建一个按钮(在 Django 管理页面中实现这个非常重要),它一次创建许多 Student 对象(name我们从 Person 中获取的 lastname,带有空的 grade 字段,我们可以在以后填写)。

最佳答案

您可以使用 Admin Actions这样做:

首先,您定义一个执行插入事件的 create_student 函数。这将链接到 Person Admin,因为该操作是从 Persons 执行的。例如:

@admin.action(description='Create students from selected persons')
def create_student(modeladmin, request, queryset):
for person in queryset:
s = Student(name = person.name, lastname=person.lastname)
s.save()

因此您可以将操作添加到 PersonAdmin

class PersonAdmin(admin.ModelAdmin):
actions = [create_student]

admin.site.register(Person, PersonAdmin)

关于python - 如何在创建许多对象的 Django admin 中创建自定义按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70925165/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com