Djangoフォームの個々のフィールドを1つずつ表示して、特定のプロパティを変更しようとしています。Djangoは個々のフォームフィールドが表示されないようにします
これは私のforms.pyです。わかりやすくするために1つのフィールドに減らしました。
from django import forms
class NameForm(forms.Form):
name = forms.CharField(max_length=100)
フォームを完全にレンダリングすると完全に機能します。私のHTMLコード -
<form style="text-align:center; padding-bottom: 2%" action="/contact/" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
</form>
上記のコードのためのページのソースは次のように来て -
<p><label for="id_name">Name:</label> <input id="id_name" maxlength="100" name="name" type="text" /></p>
私は{{ form.name }}
代わりの{{form}}
を使用してのように、個々のフィールドをレンダリングしようとすると、問題が来ます。これのページソースは空です。 HTMLは作成されません。
{% for field in form %}
<div class="fieldWrapper">
{{ field }}
</div>
{% endfor %}
そして、このためにレンダリングされたHTMLは次のようである - -
私も試してみました、私は完全なHTMLソースを掲示したが、各文字を印刷しているループのように思えるしていない
<div class="fieldWrapper">
<
</div>
<div class="fieldWrapper">
p
</div>
<div class="fieldWrapper">
>
</div>
<div class="fieldWrapper">
<
</div>
<div class="fieldWrapper">
l
</div>
<div class="fieldWrapper">
a
</div>
<div class="fieldWrapper">
b
</div>
<div class="fieldWrapper">
e
</div>
<div class="fieldWrapper">
l
</div>
<div class="fieldWrapper">
</div>
<div class="fieldWrapper">
f
</div>
<div class="fieldWrapper">
o
</div>
<div class="fieldWrapper">
r
</div>
<div class="fieldWrapper">
フォームからレンダリングされたHTMLコードは、最初の数文字を結合したように表示されます。
<p><label for>
など...
これがなぜ起こっているのか説明してください。
はい、あなたは正しいです。私の見解は 'form.as_p'を返していました。私の愚かなこと。どうもありがとう。 –
@JyotmanSingh大歓迎です! –