Как отобразить обратные поля с использованием связанного имени между моделями с внешним ключом
У меня есть две модели с отношением внешнего ключа и связанным именем. Я возвращаю кверисет 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)