Как получить доступ к кнопкам в отдельном файле HTML в файле HTML, который включен в качестве заголовка? - PullRequest
0 голосов
/ 18 июня 2019

Я делаю приложение, для которого требуется заголовок, состоящий из кнопок навигации. Мне нужно получить доступ к этим кнопкам на соответствующем главном экране, где этот HTML-заголовок включен.

Однако, когда я пытаюсь получить доступ к этим кнопкам, они ничего не делают - даже если у меня есть оператор if, который вызывает все эти кнопки при нажатии.

Я попытался отделить header.html, чтобы увидеть, работает ли он как обычная страница, что и делает. Это не работает только тогда, когда он включен в качестве заголовка.

HTML-код заголовка:

<form method="POST">
        {% csrf_token %}
        <div class="sidenav">
            <button type="submit" name="vergelijken" value="vergelijken">Vergelijken</button><br>
            <button type="submit" name="dag" value="dag">Dag</button><br>
            <button type="submit" name="week" value="week">Week</button><br>
            <button type="submit" name="maand" value="maand">Maand</button><br>
            <button type="submit" name="jaar" value="jaar">Jaar</button><br>
        &nbsp;
            <button type="submit" name="live" value="live">Live</button>
            {% load static %}
            <img src="{% static 'images/rdot.png' %}" class="rdot_logo"/>
        </div>
    </form>

Код Джанго:


def header(request):
    global keuze
    if request.method == "POST":
        if request.POST.get('vergelijken'):
            print('hallo')
            return HttpResponseRedirect('/vergelijk/')
        elif request.POST.get('dag'):
            keuze = 'dag'
        elif request.POST.get('week'):
            keuze = 'week'
        elif request.POST.get('maand'):
            keuze = 'maand'
        elif request.POST.get('jaar'):
            keuze = 'jaar'
        elif request.POST.get('live'):
            keuze = 'live'
    return render(request, 'header.html')

Мне нужны эти операторы if в коде django для работы, когда шаблон используется в качестве включения на странице base.html. В настоящее время кнопки и все видны, но не функционируют как включенная страница. Однако, когда страница используется как обычная веб-страница, эти кнопки работают просто отлично.

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Ну, я выяснил, в чем проблема.Очевидно, когда вы включаете HTML-файл в другой, вы можете вызывать кнопки чужого html-файла в файле, в который он вызывается.Поэтому я пытался создать отдельное определение для этого включенного файла HTML, оказалось, что в этом нет необходимости, и я мог просто использовать определение файла HTML, в который импортируется чужой файл.

0 голосов
/ 18 июня 2019

Ваша форма не имеет атрибута action.Таким образом, он будет отправлять обратно в представление, которое отображало страницу, а не в представление header.

Вам необходимо определить URL-адрес, указывающий на представление заголовка, и использовать action="{% url "header"}", чтобы указать на него..

Обратите внимание, что вы ни при каких обстоятельствах не должны использовать такие глобальные переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...