Правила в представлениях для пользовательских типов пользователей
В моем приложении я создал два типа пользователей с отношениями один-к-одному.
class Teacher(models.Model):
user = models.OneToOneField(AuthUser, primary_key=True, on_delete=models.CASCADE)
...
class Student(models.Model):
user = models.OneToOneField(AuthUser, primary_key=True, on_delete=models.CASCADE)
...
В представлениях сейчас я проверяю роль пользователя следующим образом:
student = Student.objects.get(pk=request.user.id)
teacher = Teacher.objects.get(pk=request.user.id)
но он выбрасывает исключение, какой способ лучше использовать?
Я думаю, что дело в параметрах поиска и в данных, которые вы хотите искать по id пользователя не в id пользователя, а в id студента и преподавателя, попробуйте этот код:
student = Student.objects.get(user_id=request.user.id)
teacher = Teacher.objects.get(user_id=request.user.id)
за возникшую ошибку
500:
DoesNotExist at /create/
Student matching query does not exist.
потому что данные, которые вы хотите найти по id, не найдены