Django 手动呈现的表单字段不保存数据
我真的很想自己解决这个问题,我花了4个多小时在这个问题上,但我现在放弃了 我有一个应该保存数据的表单,如果我用{{form}}标记布局表单,一切都会很好。如果我将带有{{form.client_email}等单个标记的表单放入,表单数据不会保存到数据库中 为了前端的目的,我需要手动渲染这些字段,但我就是不知道怎么做。 我非常感谢你的帮助 这是我的密码 views.pyDjango 手动呈现的表单字段不保存数据,django,forms,save,Django,Forms,Save,我真的很想自己解决这个问题,我花了4个多小时在这个问题上,但我现在放弃了 我有一个应该保存数据的表单,如果我用{{form}}标记布局表单,一切都会很好。如果我将带有{{form.client_email}等单个标记的表单放入,表单数据不会保存到数据库中 为了前端的目的,我需要手动渲染这些字段,但我就是不知道怎么做。 我非常感谢你的帮助 这是我的密码 views.py def client_list_view(request): if request.method == 'POST':
def client_list_view(request):
if request.method == 'POST':
form = ClientModelForm(request.POST)
if form.is_valid():
client_title = form.cleaned_data["client_title"]
client_email = form.cleaned_data["client_email"]
client_turkishid_no = form.cleaned_data["client_turkishid_no"]
client_tax_no = form.cleaned_data["client_tax_no"]
client_tax_office = form.cleaned_data["client_tax_office"]
client_contactperson = form.cleaned_data["client_contactperson"]
client_phone_number = form.cleaned_data["client_phone_number"]
Client.objects.create(
client_title=client_title,
client_email=client_email,
client_turkishid_no=client_turkishid_no,
client_tax_no=client_tax_no,
client_tax_office=client_tax_office,
client_contactperson=client_contactperson,
client_phone_number=client_phone_number
).save()
return redirect("books:client-list")
else:
form = ClientModelForm()
client_list = Client.objects.all().order_by("client_title")
context = {'client_list' : client_list, "form": ClientModelForm}
return render(request, 'clients/client_list.html', context=context)
工作模板
<div id="clientModal" class="modal bottom-sheet">
<div class="modal-content">
<form method="POST">
{% csrf_token %}
{{form}}
<button class="btn">Ekle</button>
</form>
</div>
</div>
{%csrf_令牌%}
{{form}}
埃克尔
不工作模板
<div id="clientModal" class="modal bottom-sheet">
<div class="modal-content">
<div class="row">
<div class="col s12">
<ul class="tabs">
<li class="tab col m6"><a class="active" href="#gercek">Gerçek Kişi</a></li>
<li class="tab col m6"><a class="active" href="#tuzel">Tüzel Kişi</a></li>
</ul>
</div>
<div id="gercek" class="col s12">
<div class="col s12 m12 l12">
<div id="inline-form" class="scrollspy">
<div class="card-content">
<form method="POST">
{% csrf_token %}
<div class="row">
<div class="input-field col m4 s12">
<i class="material-icons prefix">email_outline</i>
{{form.client_email}}
<label for="{{ form.client_email.id_for_label }}">Müvekkilin E-Posta Adresi</label>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div id="tuzel" class="col s12">
<div class="col s12 m12 l12">
<div id="inline-form" class="scrollspy">
<div class="card-content">
<form method="POST">
{% csrf_token %}
<div class="row">
<div class="input-field col m4 s12">
<i class="material-icons prefix">account_circle</i>
{{form.client_title}}
<label for="{{ form.client_title.id_for_label }}">Müvekkilin Unvanı</label>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{%csrf_令牌%}
电邮(大纲)
{{form.client_email}
Müvekkilin E-Posta Adresi
{%csrf_令牌%}
会计圈
{{form.client_title}
穆维基林
在“不工作”模板中,用表单标记包装每个单独呈现的字段。这不是做你需要的事情的正确方法。只需像在工作模板中一样保留一个表单标记,并呈现其中的所有字段:
<div id="clientModal" class="modal bottom-sheet">
<div class="modal-content">
<form method="POST">
{% csrf_token %}
<!-- put your fields here with any additional markup you need -->
{{ form.client_email }}
<label for="{{ form.client_email.id_for_label }}">Müvekkilin E-Posta Adresi</label>
{{ form.client_title }}
<label for="{{ form.client_title.id_for_label }}">Müvekkilin Unvanı</label>
<!-- by the way you can use form.<field>.label_tag -->
{{ form.client_phone_number }}
{{ form.client_phone_number.label_tag }}
<!-- and maybe you'd also like to render errors -->
{{ form.client_phone_number.errors }}
<button class="btn">Ekle</button>
</form>
</div>
</div>
谢谢你的数据技巧,这部分很有效。但是表单仍然不起作用。即使在工作模板中,如果我只是将{{form}标记更改为{{form.client_title},post数据也会被发送,但不会在db中注册。@AhmetNecipArslan显示您的实际代码,包括表单
code
{%csrf_token%}{form.client_title}Eklecode
@AhmetNecipArslan您仍然没有呈现错误,您确定您的表单有效吗?
if form.is_valid():
form.save(commit=True)