Отправка POST с изменением значения флажка с помощью Django - PullRequest
0 голосов
/ 09 апреля 2019

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

Проблема, с которой я столкнулся, заключается в том, что если для флажка установлено значение true (флажок), а затем я отменяю выбор, данные POST не содержат ничего, что говорит о том, что они больше не проверяются. Это не дает значения «выкл», «0» или ложь. Как я могу убедиться, что когда флажки сняты, я все еще получаю эти значения («выкл.», «0» или «ложь»)? В данных поста?

Ниже мой код:

<form id=result_form action= "{% url 'example:save_notes' %}" method="post">
{% csrf_token %}
    <table id="results_table" class="formdata" summary="Example Search Results"
    data-order='[[ 1, "des" ]]' data-page-length='25'>
        <thead>
            <tr>
                <th style="width:5%" scope="col">Search Method</th> 
                <th style="width:20%" scope="col">Search Date</th>
                <th style="width:5%" scope="col">City</th>
                <th style="width:10%" scope="col">Example Name</th>
                <th style="width:10%" scope="col">Article Title</th>
                <th style="width:10%" scope="col">Article Link</th>
                <th style="width:5%" scope="col">Reviewed </th>
                <th style="width:5%" scope="col">J/J Related</th>
                <th style="width:5%" scope="col">N Related</th>
                <th scope="col">General Notes</th>
                <th scope="col">Findings</th>
                <th scope="col">Edit</th>

            </tr>
        </thead>
    <tbody>
    {% for result in results %}
        <tr>
            <td>{{result.notes.method}}</td>
            <td>{{result.retrieved_on}}</td>
            <td>{% for e in result.search_result_t.all%}{{e.search_term_id.example_abbrev}}&nbsp{% endfor %}</td>
            <td>{% for e in result.search_result_t.all%}{{e.search_term_id.example_ID.example_name}}{% endfor %}</td>
            <td>{{result.title}}</td>
            <td width="5%"><a href={{result.link}} target="_blank">{{result.link}}</a></td>
            <form action="{% url 'example:form_edit' %}" method="POST">
            <td><input type="checkbox" name="reviewed" {% if result.notes.reviewed %}checked{% endif %}></td>
            <td><input type="checkbox" name="jj" {%if result.notes.j_j %}checked{% endif %}></td>
            <td><input type="checkbox" name="n" {%if result.notes.n_related %}checked{% endif %}></td>
            <td><textarea cols="40" rows="15" name="general_notes" value = "{{result.notes.general_notes}}">{{result.notes.general_notes | default_if_none:""}}</textarea>
            <td><textarea cols="40" rows="15" name="significant_findings" value = "{{result.notes.significant_findings}}">{{result.notes.significant_findings | default_if_none:""}}</textarea>
            <td><button>Save</button></td>    
            <input type="hidden" name="result.id" value={{result.id}}>
            </form>
        </tr>
        {% endfor %}

Ответы [ 2 ]

2 голосов
/ 09 апреля 2019

Снятые флажки не являются частью запроса - см. здесь . Но зачем вам эта информация, поскольку вы должны знать, какие флажки вы отправили.

1 голос
/ 09 апреля 2019

Спасибо за ваше руководство ger.s.brett.Я использовал ответ на этот пост , чтобы решить мою проблему.

Это выглядит, чтобы увидеть, находится ли поле в POST:

updated = request.POST.get ('updated', "false")

Если поле присутствует, оно использует значение POST.Если его нет, он считает его ложным.

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