flectra/doc/howtos/backend/exercise-constraint-python

26 lines
898 B
Plaintext
Raw Permalink Normal View History

# HG changeset patch
# Parent 7a7d003fe38426a405ce0657a627a139133ec4dd
# Parent 52f54b46487c8224a5aade4b921be77360ed3eae
diff --git a/openacademy/models.py b/openacademy/models.py
--- a/openacademy/models.py
+++ b/openacademy/models.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
2018-03-14 10:18:18 +01:00
-from flectra import models, fields, api
+from flectra import models, fields, api, exceptions
class Course(models.Model):
_name = 'openacademy.course'
@@ -56,3 +56,9 @@ class Session(models.Model):
'message': "Increase seats or remove excess attendees",
},
}
+
+ @api.constrains('instructor_id', 'attendee_ids')
+ def _check_instructor_not_in_attendees(self):
+ for r in self:
+ if r.instructor_id and r.instructor_id in r.attendee_ids:
+ raise exceptions.ValidationError("A session's instructor can't be an attendee")