Не выводятся данные на страницу в Django

Я создаю сайт сокращения ссылок.

И когда надо чтоб все сокращённые ссылки выводились снизу под формой, оно не отображается.

Я читал информацию, но не помогло.

#views.py
def links(request):
    form = LinkForm(request.POST or None)
    if request.method == "POST":
        BASE_URL = request.get_raw_uri()
        if form.is_valid():
            link_urls = Links()
            form.save()
            link_urls.short_url = request.POST.get("short_url")
            form.save()
            link_urls.save()
            return redirect('link-creation')
    return render(request, 'sokratim/links.html', {"form": form, "context_object_name": "urls"})


def redirector(request, key):
    instance = get_object_or_404(Links, key=key)
    return redirect(instance.original_url)

#models.py
from django.db import models


class Links(models.Model):
    long_url = models.URLField('Длинная ссылка', max_length=255)
    short_url = models.CharField('Сокращённая ссылка', max_length=15, unique=True)


def __str__(self):
    return f'{self.long_url} - {self.short_url}'


class Meta:
    verbose_name = "Link"
    verbose_name_plural = "Links"

#links.html
{% extends 'sokratim/base.html' %}

{% block title %}
  {{ title }}
{% endblock %}

{% block content %}
  <form method="post" class="form-links">
    <h2 class="link-short">Сокращение ссылок</h2>
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit" class="btn" style="margin: 0">Сократить</button>
  </form>
  <div class="links">
    {% for urlg in urls %}
      <div class="media-body">
        <h5>Cсылка <a target="_blank" href="{{ urlg.long_url }}">link/{{ urlg.short_url }}/</a></h5>
      </div>
    {% endfor %}
  </div>
{% endblock content %}

Вот сама форма

Форма сокращения ссылок


Ответы (1 шт):

Автор решения: Sherlock
from .models import Links


def links(request):
    urls = Links.objects.all()
    form = LinkForm(request.POST or None)
    if request.method == "POST":
        BASE_URL = request.get_raw_uri()
        if form.is_valid():
            link_urls = Links()
            form.save()
            link_urls.short_url = request.POST.get("short_url")
            form.save()
            link_urls.save()
            return redirect('link-creation')
    return render(request, 'sokratim/links.html', {"form": form, "urls": urls})

В словаре context(это словарь который вы передаете в render) вы должны передавать все ссылки.

1-м вы передаете название переменной, которая будет рендерится в html шаблоне. 2-м вы передаете переменную с содержимым, которое вы хотите отправить в html шаблон.

→ Ссылка