dauren101
@dauren101
Python, Django ,Vue.js

Django Select все пользователей + из дополнительного класса?

Расширил User модель, путем создания дополнительного класса
class UserProfile(models.Model):
    user = models.OneToOneField(User)
    avatar = models.ImageField(upload_to=get_upload_to, verbose_name='Изображение',blank=True, null=True)
    token = models.CharField(max_length=200,blank=True, null=True)
    activate=models.BooleanField(default=False)
    description = models.TextField(max_length=250,blank=True, null=True)
    fulltext = models.TextField(max_length=250, blank=True, null=True)


Как мне теперь сделать выборку всех пользователей включая данные из дополненной модели?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
dauren101
@dauren101 Автор вопроса
Python, Django ,Vue.js
User.objects.all().select_related('userprofile')
in template
{% for user in users %}
{{ user.first_name }}
{{ user.email }}
{{ user.userprofile.description }}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
https://docs.djangoproject.com/en/1.10/ref/models/...
Добавьте related_name у поля user
user = models.OneToOneField(User, related_name='profile')

и используйте select_related при запросе пользователей
users = User.objeccts.select_related('profile').all()

потом можно использовать данные из дополнительной модели
user = users[0]
print(user.profile.token)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы