Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在Django中使用RadioSelect表单时无法获取单选按钮?_Django_Python 3.x_Django Forms - Fatal编程技术网

为什么在Django中使用RadioSelect表单时无法获取单选按钮?

为什么在Django中使用RadioSelect表单时无法获取单选按钮?,django,python-3.x,django-forms,Django,Python 3.x,Django Forms,我正在构建一个页面,用户可以通过单选按钮选择一个月。我还需要收集其他信息,如名字、姓氏、电子邮件、电话号码和公司。在这样做的过程中,我认为使用Django表单应该可以完成这项工作。我开始并实现了所有的事情,然后开始单选按钮的部分。我发现我需要使用ChoiceField来实现这一点,RadioSelect是其中的一个小部件。我所有的选择都显示出来了,但是我不能点击任何一个来选择它们。此外,这将是一个必要的问题,我不知道如何使这成为一个必要的形式,因为它可以留空,我看到它仍然会张贴没有问题 我在谷歌

我正在构建一个页面,用户可以通过单选按钮选择一个月。我还需要收集其他信息,如名字、姓氏、电子邮件、电话号码和公司。在这样做的过程中,我认为使用Django表单应该可以完成这项工作。我开始并实现了所有的事情,然后开始单选按钮的部分。我发现我需要使用ChoiceField来实现这一点,RadioSelect是其中的一个小部件。我所有的选择都显示出来了,但是我不能点击任何一个来选择它们。此外,这将是一个必要的问题,我不知道如何使这成为一个必要的形式,因为它可以留空,我看到它仍然会张贴没有问题

我在谷歌上搜索了阳光下的一切。我试图为它设置一个初始选择,希望它至少显示一个单选按钮,但没有成功。我试着只做widget=forms.Select而不是RadioSelect,仍然显示月份,但我无法选择任何月份。不知道该怎么办。如果有帮助的话,这就是利用Django 2.1

index.html-请注意,虽然我在这里有一个放置月份单选按钮的位置,但我试图在模板中不包含它们,而希望它们位于form.py文件中 {%extends'landingpage/layout.html%}

{% block content %}
<div class="h1 col s3 left-align grey lighten-4" style="font-family: 'Exo', sans-serif;">Welcome to FaithGuard</div>
<div class="div">
        <br>
        <br>
        <br>
        <br>
</div>

<div class="row" style="font-family: 'Exo', sans-serif;">


        <form method='POST' class="col s6"> {% csrf_token %}
{{ form }}

<div class="h1 col s6 grey lighten-4 radioRequired">Date of renewal/expiration</div>
<br>
<br>

<div class="div" id ="Exiration Month Div">
                <p>
                  <label>
                    <input name="month" value ="January" type="radio" />
                    <span>January</span>
                  </label>
         <label>
           <input name="month" value ="February" type="radio" />
          <span>February</span>
        </label>

         <label>
         <input name="month" value="March" type="radio"  />
         <span>March</span>
         </label>
         <label>
          <input name="month" value="April" type="radio" />
           <span>April</span>
        </label>
                </p>


                <p>
                  <label>
                    <input name="month" value="May" type="radio" />
                    <span>May</span>
                  </label>
                                    <label>
                    <input name="month" value="June" type="radio" />
                    <span>June</span>
                  </label>
                                    <label>
                    <input name="month" value="July" type="radio" checked/>
                    <span>July</span>
                  </label>
                                    <label>
                    <input name="month" value="August" type="radio" />
                    <span>August</span>
                  </label>
                </p>
                <p>
                  <label>
                    <input name="month" value="September" type="radio"  />
                    <span>September</span>
                  </label>
                                    <label>
                    <input name="month" value="October" type="radio" />
                    <span>October</span>
                  </label>
                                    <label>
                    <input name="month" value="November" type="radio" />
                    <span>November</span>
                  </label>
                                    <label>
                    <input name="month" Value="December" type="radio" />
                    <span>December</span>
                  </label>
                </p>
<div class="div right-align">
<button class="btn waves-effect waves-light" type="submit" name="action">Submit</button>
</div>

</div>
              </form>

      </div>

{% endblock %}
forms.py

我所期望的是,在接下来的几个月里,用户可以通过单选按钮进行选择


除非您真的必须自己做,否则应该让Django为您呈现输入标记

您可以让它用{form}或{{form.as_p}或类似的方法呈现整个表单。或者可以呈现单个字段,如:{{form.month}}和{{{form.month.errors}},以显示任何验证错误。相关文件:


我认为您当前的问题是在单个元素中存在重复输入,即具有相同名称属性的输入。一组输入单选按钮来自{{form}}模板标记,另一组在模板中硬编码。尝试删除硬编码输入,看看表单是否开始按预期运行。

这里有很多问题,但要澄清一点,因为它们具有相同的isue,django radio select在大多数情况下都会显示类似的内容

<label>
    {{ radio.choice_label }}
    <span>{{ radio.tag }}</span>
</label>
这就是为什么收音机不能正常播放的原因

<label>
    <span>name_of_choice
       <input />
    </span>
</label>
我们需要这样做才能工作

{% for radio in form.clientes %}
    <label>
        {{ radio.tag }}
        <span>{{ radio.choice_label }}</span>
    </label>
{% endfor %}

我建议您将views.py中的参数传递给forms.py,以获得“我清理模板”和正确的值,如果您对此有疑问,请告诉我。

请显示视图和模板。Worksforme,问题可能在其他地方。一些花式JS?@DanielRoseman,我加上去的。谢谢您的回复。@frnhr,我很高兴它对您有用。里面没有花哨的JS。尚未添加任何内容。@编码招聘人员除了2个月之外,您应该从模板中删除手动创建的一个月。您的代码运行正常-我可以看到打印的验证数据和发布数据。感谢您的回复。我只是在RadioSelect不起作用后才添加了第二组输入。它显示月份,但不能选择月份。我删除了第二个输入,但仍然存在相同的问题。我想可能是我的浏览器。
<label>
    <span>name_of_choice
       <input />
    </span>
</label>
{% for radio in form.clientes %}
    <label>
        {{ radio.tag }}
        <span>{{ radio.choice_label }}</span>
    </label>
{% endfor %}