Как создать пользовательскую кнопку в админке Django, которая создает много объектов?

У меня есть модель Студент:

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 (с полями name и surname). Моя ситуация - это просто пример. Я хочу создать кнопку в админке Django (очень важно реализовать это на странице админки Django), которая создает сразу много объектов Student (name и lastname мы берем из Person, с пустым полем grade, которое мы можем заполнить в будущем).

Для этого вы можете использовать Admin Actions:

Сначала вы определяете функцию create_student, которая выполняет действие вставки. Она будет связана с администратором Person, поскольку действие выполняется из 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)
Вернуться на верх