vbv/server/vbv_lernwelt/course_session_group/signals.py

17 lines
647 B
Python

from django.core.exceptions import ValidationError
from django.db.models.signals import m2m_changed
from django.dispatch import receiver
from .models import CourseSessionGroup
@receiver(m2m_changed, sender=CourseSessionGroup.course_session.through)
def validate_course(sender, instance, action, reverse, model, pk_set, **kwargs):
if action == "pre_add":
course_sessions = model.objects.filter(pk__in=pk_set)
for session in course_sessions:
if session.course != instance.course:
raise ValidationError(
"CourseSession does not match the Course of this Group."
)