Как я могу реализовать флажок в Django - PullRequest
0 голосов
/ 21 ноября 2019

У меня есть приложение графического интерфейса для ПК, и я пытаюсь дублировать ту же функциональность в браузерном решении с использованием django. На ПК у меня есть флажок, который включает дополнительные функции для пользователя. Все, что мне нужно сделать, это вернуть значение (True или False), когда флажок установлен, и это изменит логику в модуле представлений.

Я установил флажок как:

<form method='post'>
    <input type="checkbox" name="use_stages" value="use_stages">Use stages
</form>

В браузере появляется флажок, но он не позволяет мне его проверить.

Я смотрел на формы django, но для такого простого требования это кажется излишним. Должен ли я идти по этому маршруту?

Я не привязан к флажку. Может быть, кнопка будет делать с переключением текста, когда пользователь нажимает на него.

Кто-нибудь может подсказать, как мне поступить отсюда?

Вот код для шаблона:

from django.shortcuts import render

def home(request):
    """Home page."""
    context = {}
    url = 'boards/home.html'
    return render(request, url, context)

Решение

Чтобы усилить ответ sandeep ниже, теперь это код в моем шаблоне:

<form method='post'>
    {% csrf_token %}
    <input type="checkbox" name="use_stages" {% if use_stages %} checked="checked"{% endif %} value= "1">Use stages
    <input type="submit" value="submit">
</form>

, и это в представлениях:

def my_url(request):
    context = <get context dict from somewhere>
    if request.method == 'POST':
        use_stages = request.POST.get('use_stages', 0)
        context['use_stages'] = use_stages == '1'
    url = 'boards/main_screen.html'
return render(request, url, context)

Ответы [ 2 ]

1 голос
/ 21 ноября 2019

Вы можете сделать это.

в шаблоне:

<form method='post'>
    <input type="checkbox" name="use_stages" value="1">Use stages
     <input type="submit" value="submit">
</form>

views.py

def home(request):
    if request.method == 'POST':
        check = request.POST.get('use_stages', 0)
        print(check) # 1 (True) or 0 (False)

    context = {

    }
    url = 'boards/home.html'
    return render(request, url, context)

, если флажок установлен, значениепроверки будет 1, иначе 0. Вы можете использовать это как True (1) или False (0)

0 голосов
/ 21 ноября 2019

В файле Models.py вы можете добавить атрибут с помощью BooleanField ex: featured = models. BooleanField (default = False) при этом будет отображаться флажок со значением по умолчанию как непроверенный

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