0
我有一种外行人的形式,有一堆按钮(表现为复选框)与值。用户可以选择一些按钮。 按钮将它们的值(通过JQuery函数)推送到我用来收集值的隐藏输入中。基于隐藏输入的模板值验证表单 - 这可能吗?
我想确保每个隐藏输入的"values="
属性不是null
或""
当用户按下提交表单。
例:请确保输入不等于此:
<input autocomplete="off" id="id_valuePlatform" name="valuePlatform" type="hidden">
或
<input autocomplete="off" id="id_valuePlatform" name="valuePlatform" type="hidden" value="">
这里的forms.py:
class getGames(forms.Form):
valuePlatform = forms.CharField(required=True, error_messages={'required': 'You need to tell us your platform(s)!'}, widget=forms.HiddenInput(attrs={'autocomplete': 'off'}))
模板:
<form method= "POST" autocomplete="off"> {% csrf_token %}
{{ form.non_field_errors }}
<div class="container">
{% if form.valuePlatform.errors %}
<ol>
{% for error in form.valuePlatform.errors %}
<li><strong>{{ error|escape }}</strong></li>
{% endfor %}
</ol>
{% endif %}
</div>
{{ form.valuePlatform }}
</div>
</div>
</form>
Views.py:
from .forms import getGames
def find(request):
form = getGames()
context = {"form": form}
if form.is_valid():
print form.cleaned_data['valuePlatform']
这甚至可能,或者我会通过Ajax的POST传递数据给Django的?
它并不形式值是否是使用JavaScript或没有设置之至Django的。上面的例子应该可以工作。如果它不起作用,那么在你的视图中打印'request.POST'和'form.errors'可能会帮助你看到你提交的数据。 – Alasdair
它确实有效,但我希望表单在值为空或空时抛出一个错误。 – AllTheGoodNamesWereTaken
您是否检查过消息是否出现在'form.errors'中?你如何在模板中显示公司错误?你看过[渲染表单错误文档](https://docs.djangoproject.com/en/1.8/topics/forms/#rendering-form-error-messages)吗? – Alasdair