Django установка поля ManyToMany в текущее значение другого поля ManyToMany

Я пытаюсь установить значение поля current_courses ManyToManyField моей модели StudentMeeting в значение поля Student.course ManyToManyField, чтобы на каждой встрече сохранялась запись о том, на какие курсы был зачислен студент во время встречи.

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
from django.db.models.signals import post_save
from django.dispatch import receiver

# Unrelated models omitted...

class Student(models.Model):
    """Model representing a student"""
    first_name = models.CharField(max_length=50, help_text="Student first name.")
    last_name = models.CharField(max_length=50, help_text="Student last name.")
    course = models.ManyToManyField(Course, help_text="Select courses student is enrolled in.", blank=True, default='')

    def __str__(self):
        """String representing the Model object"""
        return self.last_name + ", " + self.first_name

    def get_absolute_url(self):
        """Returns the url to access a detailed record for this student"""
        return reverse("checkin-student-detail", args=[str(self.id)])


class StudentMeeting(models.Model):
    """Model representing a check-in appointment"""

    instructor = models.ForeignKey(User, on_delete=models.PROTECT, null=True, blank=True, default='')
    student = models.ForeignKey(Student, help_text="Student Name.", on_delete=models.CASCADE, null=True)
    appointment_date = models.DateField("Date", default=timezone.now)
    attended_meeting = models.BooleanField()
    missing_work_amount = models.IntegerField(default=0)
    narrative = models.TextField(blank=True, default='')
    current_courses = models.ManyToManyField(Course, blank=True, default='')

    def __str__(self):
        """String representing the Model object"""
        return str(self.appointment_date) + ": " + self.student.last_name + ", " + self.student.first_name


@receiver(post_save, sender=StudentMeeting)
def set_current_courses(sender, instance, created, **kwargs):
    if created:
        instance.current_courses.set(instance.student.course.all())


Варьируемая последняя строка выдает ошибки. Я не уверен, что у меня просто неправильный синтаксис, или я не знаю, как правильно это сделать...

Вернуться на верх