hello i have two models and a post_save signal, but my signal only when object is updated is work and when i create a new object it not work
my code :
class Attendance(models.Model):
classroom = models.ForeignKey('Class', on_delete=models.CASCADE)
student = models.ForeignKey(User, on_delete=models.CASCADE)
is_present = models.BooleanField(default=False)
present_time = models.DateTimeField(null=True, blank=True)
def __str__(self):
return self.student.username
class Class(models.Model):
course = models.ForeignKey(Course, on_delete=models.CASCADE)
students = models.ManyToManyField(User)
quantity = models.PositiveSmallIntegerField()
start_time = models.DateTimeField()
end_time = models.DateTimeField()
class Meta:
unique_together = ['quantity', 'course']
def __str__(self):
return f'{self.quantity} / {self.course}'
@receiver(post_save, sender=Class)
def create_attendance(sender, instance, **kwargs):
for student in instance.students.all():
try:
Attendance.objects.get(classroom=instance, student=student)
except Attendance.DoesNotExist:
Attendance.objects.create(classroom=instance, student=student)