Как отобразить обратные поля с использованием связанного имени между моделями с внешним ключом
У меня есть две модели с отношением внешнего ключа и связанным именем. Я возвращаю кверисет Foo
и хочу отобразить поля связанного объекта Bar
. Однако, item.link.value
ничего не отображает.
# Models
class Foo(models.Model):
item
class Bar(models.Model:
foo = models.Foreignkey(Foo, on_delete=models.CASCADE, related_name='link')
value = models.Charfield(max_length=20)
# View
def test(request):
qs = Foo.objects.all()
context = {
'qs': qs
}
return render (request, 'somepage.html', context)
# Template
{% for item in qs %}
<div> {{ item.link.value }} </div>
Попробуйте изменить свой набор запросов, чтобы он возвращал экземпляры Bar
, которые имеют атрибут value
.
Сначала обновите ваше связанное имя в модели Bar
на множественное число, links
:
# Models
class Foo(models.Model):
item
class Bar(models.Model:
foo = models.Foreignkey(Foo, on_delete=models.CASCADE, related_name='links')
value = models.Charfield(max_length=20)
Если теперь вы запросите Foo.links.all()
, Django вернет набор экземпляров Bar
.
# View
def test(request):
qs = Foo.links.all()
context = {
'qs': qs
}
return render (request, 'somepage.html', context)