Отредактированный ответ
модели:
class Leave(models.Model):
staff = models.ForeignKey(get_user_model(),on_delete=models.CASCADE,related_name='staff_leave')
organization = models.ForeignKey(Organization,on_delete=models.CASCADE,related_name='staff_leave')
is_reviewed_by = models.ForeignKey(get_user_model(),on_delete=models.CASCADE,related_name='reviewed_by',blank=True,null=True)
Я думаю, что эта модель предназначена для предоставления информации о сотруднике.
Не работаеткод:
reviewers = leave.reviewed_by.all() # not working
staffs = leave.staff_leave.all() # does not works
И это для персонала, который уходит в отпуск, и человека, который просмотрел заявление на отпуск.Оба поля связаны с моделью пользователя.Если у нас есть экземпляр Leave
модели (то есть leave = get_object_or_404(Leave, pk=pk)
), то мы можем получить эти два следующим образом:
staffs = leave.staff # for person who will be on leave
reviewers = leave.is_reviewed_by # for the person who reviewed the leave
Extra
Если мы имеем Пользователь экземпляр (user = get_object_or_404(User, pk=pk)
), и мы хотим знать, сколько листьев он взял, тогда мы можем использовать связанное имя:
no_of_leaves_itaken = user.staff_leave.all()
или сколько листьев он просмотрел:
no_of_leaves_reviewed = user.staff_leave.all()