我的表单不使用 bootstrap 在 django 中保存样式
My form does not save using bootstrap for styling in django
您好,感谢您的光临
我是 Django 的新手
我想知道如何使用 django-bootstrap-v5 设计表单样式
我尝试了这个但不起作用
我有这个form.py
pathesForm = inlineformset_factory(
Book,
quotation,
fields=('name','time',),
can_delete=False,extra=4,max_num=4,
widgets={'name': forms.TextInput(attrs={
'placeholder': 'name of book',
})
}
)
我使用 django-bootstrap-v5 并在文件 html
此表格不适用于我
<form role="form" class="form-horizontal" method="post">
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
<div class="row">
<div class="col-md-6">
{% bootstrap_field form.name %}
</div>
<div class="col-md-6">
{% bootstrap_field form.time %}
</div>
</div>
{% if form.maybemissing %}
{% bootstrap_field form.maybemissing %}
{% endif %}
{% endfor %}
<button type="submit">Save</button>
</form>
但这对我有用(我可以保存表格)
{% bootstrap_formset_errors formset %}
<form role="form" class="form-horizontal" method="post">
{% csrf_token %}
{% bootstrap_formset formset %}
<button type="submit">Save</button>
</form>
这是我的view.py
def hello(request,id):
book=Book.objects.get(id=id)
if request.method == 'POST':
form= pathesForm(request.POST,request.FILES,instance=book)
if form.is_valid():
form.save()
form = pathesForm(instance=book )
return render(request,'hello/pathesForm.html',{'formset':form})
我使用 print('hello) 尝试知道问题出在哪里,结果似乎是表格无效
我怎样才能像第一个一样自定义我的表单样式
在您看来,您忘记传递 then else 语句,所以这里是
def hello(request,id):
book=Book.objects.get(id=id)
if request.method == 'POST':
form= pathesForm(request.POST,request.FILES,instance=book)
if form.is_valid():
form.save()
else:
form = pathesForm(instance=book)
return render(request,'hello/pathesForm.html',{'formset':form})
并在您的 html 请求文件字段时
你必须在这里给出一个加密类型
<form role="form" class="form-horizontal" method="POST" enctype="multipart/form-data">
这必须解决你的问题,如果你仍然遇到任何错误,请告诉我祝你今天愉快
如果您在表单有效之前和之后使用 print(form.errors) 遇到问题
我遇到了问题,并收到此错误 [{'id': ['This field is required.']}
灵魂:
<form role="form" method="post">
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
<div class="row">
<div class="col-md-6">
{% bootstrap_field form.name %}
</div>
</div>
{% if form.maybemissing %}
{% bootstrap_field form.maybemissing %}
{% endif %}
{% endfor %}
我认为使用 formset 成功只是因为(id 自动添加)
如果你想 forloop 你应该手动添加它
您好,感谢您的光临 我是 Django 的新手 我想知道如何使用 django-bootstrap-v5 设计表单样式 我尝试了这个但不起作用
我有这个form.py
pathesForm = inlineformset_factory(
Book,
quotation,
fields=('name','time',),
can_delete=False,extra=4,max_num=4,
widgets={'name': forms.TextInput(attrs={
'placeholder': 'name of book',
})
}
)
我使用 django-bootstrap-v5 并在文件 html
此表格不适用于我
<form role="form" class="form-horizontal" method="post">
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
<div class="row">
<div class="col-md-6">
{% bootstrap_field form.name %}
</div>
<div class="col-md-6">
{% bootstrap_field form.time %}
</div>
</div>
{% if form.maybemissing %}
{% bootstrap_field form.maybemissing %}
{% endif %}
{% endfor %}
<button type="submit">Save</button>
</form>
但这对我有用(我可以保存表格)
{% bootstrap_formset_errors formset %}
<form role="form" class="form-horizontal" method="post">
{% csrf_token %}
{% bootstrap_formset formset %}
<button type="submit">Save</button>
</form>
这是我的view.py
def hello(request,id):
book=Book.objects.get(id=id)
if request.method == 'POST':
form= pathesForm(request.POST,request.FILES,instance=book)
if form.is_valid():
form.save()
form = pathesForm(instance=book )
return render(request,'hello/pathesForm.html',{'formset':form})
我使用 print('hello) 尝试知道问题出在哪里,结果似乎是表格无效 我怎样才能像第一个一样自定义我的表单样式
在您看来,您忘记传递 then else 语句,所以这里是
def hello(request,id):
book=Book.objects.get(id=id)
if request.method == 'POST':
form= pathesForm(request.POST,request.FILES,instance=book)
if form.is_valid():
form.save()
else:
form = pathesForm(instance=book)
return render(request,'hello/pathesForm.html',{'formset':form})
并在您的 html 请求文件字段时 你必须在这里给出一个加密类型
<form role="form" class="form-horizontal" method="POST" enctype="multipart/form-data">
这必须解决你的问题,如果你仍然遇到任何错误,请告诉我祝你今天愉快
如果您在表单有效之前和之后使用 print(form.errors) 遇到问题 我遇到了问题,并收到此错误 [{'id': ['This field is required.']} 灵魂:
<form role="form" method="post">
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
<div class="row">
<div class="col-md-6">
{% bootstrap_field form.name %}
</div>
</div>
{% if form.maybemissing %}
{% bootstrap_field form.maybemissing %}
{% endif %}
{% endfor %}
我认为使用 formset 成功只是因为(id 自动添加) 如果你想 forloop 你应该手动添加它