@Bojczuk

Как получить значение поля из связанной модели?

Два класса связаны через ForeignKey:
#Class1:
field1 = models.ForeignKey('Class2', null=True, blank=True)

Насколько я понимаю следующий код, должен выдавать мне объект Class2, но я получаю только значение:
c = Class1.objects.get(id=1)
c.field1 #значение таблицы Class1 вместо объекта Class2
c._meta.get_field('field1').rel.to #Class2

В чём может быть проблема?
  • Вопрос задан
  • 2754 просмотра
Решения вопроса 1
@Bojczuk Автор вопроса
В параметре ForeignKey передавалось имя модели в виде строки, а не её объект. Документация говорит, что это возможно в случае для ещё не определённых моделей, но не в моём.
field1 = models.ForeignKey(Class2, null=True, blank=True)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@deliro
c.field1 даёт тебе объект, а не значение таблицы.
Если нужен сам класс, а не объект, можешь сделать type(c.field1)
Ответ написан
Sergei_Erjemin
@Sergei_Erjemin
Улыбайся, будь самураем...
Через двойной подчерк...

Т.е. что-то типа c.get_field('field1__поле_из_связной_таблицы')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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