У меня есть UserProfile
модель, которая расширяет модель пользователя:Список контактов для пользователя
class UserProfile(models.Model):
user = models.OneToOneField(User)
avatar = models.CharField(max_length=40, default='0')
activation_key = models.CharField(max_length=40, blank=True)
key_expires = models.DateTimeField(default=django.utils.timezone.now)
Я хочу, чтобы каждый пользователь должен иметь список контактов. Контакт является объектом модели User
. Я хочу составить список контактов, например, в Skype или в социальной сети. я попытался сделать в так:
class UserContact(models.Model):
user = models.ForeignKey(User, related_name='contacts')
username = models.CharField(max_length=40, blank=True)
Но я думаю, что-то не так. Потому что, если я выберу все из модели UserContact
, я получаю весь список имен пользователей без идентификаторов пользователей от модели User
.
В этом случае у меня есть данные, как это: '{ 'ID': '5', 'имя пользователя': 'someuser', ..., 'аватар': 'someavatar', 'контакты': {'id': '5', 'username': 'someuser', ...}} '. Это избыточность или нет? Есть ли способ включить только поле «имя пользователя» в этом отношении ManyToMany? – Gooman
Я не понимаю, что вы имеете в виду. То, что хорошо? И определите, что вы ожидаете от «быть хорошим». –
Если мы используем отношения «многие ко многим», каждый пользователь имеет каждое поле модели «Пользователь» в поле «Контакты». Я хочу сделать так, чтобы в этом отношении пользователь имел только поле «имя пользователя». – Gooman