Если вы хотите хранить дополнительную информацию, относящуюся к вашим пользователям, Django предоставляет метод для указания связанной с сайтом модели, называемой «профиль пользователя», для этой цели.
Чтобы использовать эту функцию, определите модель с полями для дополнительной информации, которую вы хотите сохранить, или дополнительные методы, которые вы хотите иметь доступными, а также добавьте OneToOneField из вашей модели в модель User. Это обеспечит создание только одного экземпляра вашей модели для каждого пользователя. Например:
# settings.py
AUTH_PROFILE_MODULE = 'myapp.UserProfile'
# myapp/models.py
class UserProfile(models.Model):
CLASS_CHOICES = (
(0, 'Yellow User'),
(1, 'Green User'),
)
user_class = models.IntegerField(choices=CLASS_CHOICES)
user = models.OneToOneField(User)
class Interaction(models.Model):
u1 = models.ForeignKey(User, related_name='u1s')
u2 = models.ForeignKey(User, related_name='u2s')
date = models.DateField()
Создание новой модели и связанной таблицы для каждого класса пользователя не похоже на хороший дизайн.