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())
Варьируемая последняя строка выдает ошибки. Я не уверен, что у меня просто неправильный синтаксис, или я не знаю, как правильно это сделать...