Django передача данных на html - PullRequest
0 голосов
/ 07 февраля 2020

Хорошо, я застрял и не знаю, что я делаю не так. У меня есть база данных, и мне нужно извлечь данные из нее и отобразить ее в HTML. Я посмотрел несколько уроков, и это не кажется сложным, но это не работает для меня. это мой взгляд:

def get_all_subjects(request):
    all_subjects = Predmeti.objects.all()
    return render(request, 'home.html', {"Predmeti": all_subjects})

и это дом. html:


{% block content %}
    {% if user.is_authenticated %}
        Hi {{ user.email }}!
        <p><a href="{% url 'logout' %}">logout</a></p>
        <table>
        {% for predmet in Predmeti %}

            <tr>
            <td>{{ predmet.ime }}</td>
            <td>{{ predmet.kod }}</td>
            <td>{{ predmet.bodovi }}</td>
            <td>{{ predmet.izborni }} </td>

            <td>
            <form method="POST" action="{% url 'upisni list' id=predmet.id %}">
                {% csrf_token %}
                <button type="submit"> Dodaj</button>
            </form>
            </td>
            </tr>

        {% endfor %}
        </table>
{% else %}
        <p>You are not logged in</p>
        <a href="{% url 'login' %}">login</a> |
        <a href="{% url 'signup' %}">signup</a>
    {% endif %}
{% endblock %}

Это просто говорит привет имени пользователя. Любая помощь приветствуется

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

в качестве возврата сделать это:

return render(request, 'home.html', locals())

затем в html:

{% for predmet in all_subjects %}
    {{ predmet.ime }}
{% endfor %}
0 голосов
/ 07 февраля 2020

обнаружил проблему, это было из-за beacuse в settings.py Я использовал home. html как django default TemplateView

path('', TemplateView.as_view(template_name='home.html'),  name='home'),

сделал это:

path('upisnilist/', views.get_all_subjects, name='predmeti' )

и работает прекрасный

...