@kuznetsovin

Почему не срабатывает select_related() в Django 1.6?

Есть модели в которых есть поля:
from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User, primary_key=True, unique=True, related_name='user_id')
    ...

class Comments(MPTTModel):
    ...
    user = models.ForeignKey(Profile, related_name='id_user_com')
    ...


При попытке запроса имени пользователя из модели Comment, выводиться ошибка, что такого атрибута нет:

c = Comments.objects.select_related('id_user_com__user_id').get(id=4)
print c.username

AttributeError: 'Comment' objects has no attribute 'username'

Подскажите, пожалуйста, я делаю не так.
В конечном счет мне нужно выполнить сериализацию данного запроса:
serializers.serialize('json', c, fields=('id','text','level','rating','username'))

Возможно есть другой способ получить username вместо его id.
Заранее благодарю за ответы.
  • Вопрос задан
  • 3327 просмотров
Решения вопроса 1
mututunus
@mututunus
Backend developer (Python, Golang)
Доступ остается прежним: c.user.username
select_related не добавляет поля к моделям, он лишь делает необходимые join'ы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы