我正在使用Django,我只是做了一个大表格使用HTML5和bootstrap。如果我不使用它来生成表单,我还可以通过post方法将表单发送到django吗?我应该使用Django重做我的表单吗?
答案 0 :(得分:2)
注意:可能有更好的方法可以做到这一点,如果我真的想知道,这就是我过去做过的事情。
您的应用仍然需要forms.py
个文件。
在forms.py
:
from django import forms
class MyForm(forms.Form):
# FORM FIELDS HERE
然后将表单放在视图的上下文字典中:
def myView(request):
if request.method == "POST":
# FORM PROCESSING HERE
else:
myform = MyForm() #create empty form
return render(request, "template.html", {"myform": myForm}
现在,您可以在模板中添加:
<form id="myForm" name="myFormName" method="post" action=".">
{% csrf_token %}
{% for field in myform %}
{{ field.as_hidden }}
{% endfor %}
</form>
这会将您的django表单添加到页面而不显示它。您的所有表单输入都标识为id_fieldName
,其中fieldName
是您在forms.py
文件中定义的字段名称。
现在,当用户点击您的“提交”按钮时(我假设是一个引导按钮,给出了表单的其余部分)。您可以使用Jquery将引导字段值输入到隐藏表单的值中。
类似的东西:
$("#mySubmitButton").click(function() {
$("#id_djangoFormField").val($("#myBootstrapFormField").val());
$("#myForm").submit();
}
);
这将使用bootstrap的输入提交django表单。这可以使用cleaned_data["fieldName"]
在视图中正常处理。