Как отобразить обратные поля с использованием связанного имени между моделями с внешним ключом

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