Drf: как дросселировать запрос на создание, основываясь на количестве запросов в целом, а не для каждого пользователя
Я делаю систему посещаемости, в которой учителя и разрешенные ученики могут посещать свой класс, я хочу, чтобы это было один раз в день, и если ученик уже посещает класс, учитель не должен иметь такой возможности.
модель посещаемости
class Attendance(models.Model):
Choices = (
("P", "Present"),
("A", "Absent"),
("L", "On leave"),
)
Student = models.ForeignKey(
User, on_delete=models.CASCADE, blank=False, null=True)
leave_reason = models.CharField(max_length=355, blank=True, null=True)
Date = models.DateField(blank=False, null=True,
auto_now=False, auto_now_add=True)
Presence = models.CharField(
choices=Choices, max_length=255, blank=False, null=True)
def __str__(self):
return f'{self.Student}'
Вы можете сделать комбинацию Student и Date уникальной вместе с UniqueConstraint [Django-doc]:
class Attendance(models.Model):
# …
class Meta:
constraints = [
models.UniqueConstraint(fields=('Student', 'Date'), name='student_once_per_date')
]