@Kadet__7

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

При этом нужно добавить именно действие в админ панель.
Я придумал, как копировать и изменить значение. Всё работает как надо, кроме поля manytomany. Оно почему-то не копируется, новый список остается пустой.
admin.py:
from django.contrib import admin
from .models import Student, MyModel
from django.db.models import QuerySet

admin.site.register(Student)

@admin.register(MyModel)
    class MyModelAdmin(admin.ModelAdmin)
    ....
    @admin.action(description='add copy')
    def add_lesson(self, request, qs: QuerySet):
        for ad in qs:
            ad.pk = None
            ad.name = 'name'
            ad.save()


models.py:
from django.db import models

class Student(models.Model):
    name = models.CharField('ФИО', max_length=50)

class MyModel(models.Model):

    day = models.CharField(max_length=20)
    description = models.TextField(null=True, blank=True)
    students = models.ManyToManyField(Student, blank=True)

И получается, что students не копируется
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы