Как вызвать имя приложения при вызове модели один к одному в django?
Это мои приложения:
user
students
university
Теперь, как использовать одинаковые имена для двух моделей? Например, у каждого студента и университета есть модель профиля. Сначала, когда я делаю "Профиль класса" под студентом
It gets a new table named student_profile
now in students app i can user
student_profile = user.request.profile
Но как сделать то же самое для университета? Таблица создается следующим образом
univerity_profile
Но как использовать на представлениях?
university_profile = user.request.profile
Как использовать имя приложения при вызове user.request.profile
?
Вы можете задать уникальное связанное имя для поля "один к одному", чтобы иметь возможность отличать два профиля от user
, так:
Для университета:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='university_profile')
Для студента:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='student_profile)
Тогда вы должны иметь доступ к обоим профилям из user
:
print(request.user.student_profile)
print(request.user.university_profile)