私はdjangoによって生成されたフォームを使用しています。これは、ブログに投稿した後のコメント フォームとして使用しています。
現在は問題なくレンダリングされますが、適切に配置されていません。これは私が持っているものです。
これは私が欲しいものです。
ありがとう
編集:これは、{{ form.as_table }} を使用したときの結果です
私はdjangoによって生成されたフォームを使用しています。これは、ブログに投稿した後のコメント フォームとして使用しています。
現在は問題なくレンダリングされますが、適切に配置されていません。これは私が持っているものです。
これは私が欲しいものです。
ありがとう
編集:これは、{{ form.as_table }} を使用したときの結果です
いつか他の誰かに役立つことを期待して、私のソリューションを投稿します。css でフィールドのスタイルを設定することは知っていましたが、各項目にクラスを割り当てる方法がわかりませんでした。しかし、提供されているデフォルトのテンプレートを見ると、フォーム内の各フィールドを自動的に生成する foreach ループ内の if ステートメントを使用して、エラー クラスがフィールドに割り当てられていることがわかります。 すなわち
{% for field in form %}
< p{% if field.errors %}
class="error"
{% endif %}
{{ field.label_tag }}<'/' p>
{% endfor %}
そこで、この機能を追加しました。
< p{% if field.errors %}
class="error"
{% endif %}
{% ifequal field.name "honeypot" %}
id="hide"
{% else %}
id="left"
{% endifequal %}>
{{ field.label_tag }}<'/' p>
私のCSSは
#hide{
display:none;
}
#left{
width: 200px;
text-align: left;
}
#right{
width: 300px;
text-align: left;
}
クラスを設定できるようになったので、css ファイル内でクラスまたは ID を簡単に設定できます。これはコメント用です。{{ form.as_p }} または {{ form.as_table }} を使用してフォームを生成している場合は、css 内に一般的なフォーム クラスを設定してスタイルを設定します。 すなわち
form {
width: 350px;
padding: 20px;
border: 1px solid #270644;
}
フォーム テンプレートのカスタマイズを参照してください。これは考えられる解決策の 1 つです。
おそらく、CSS を使用してフォームのスタイルを設定し、フォームを好きなようにレンダリングすることができます。(すなわちas_table() )。
デフォルトを使用すると、{% render_comment_form for app.model %}
次が生成されます。
<p>
<label for="id_name">Name</label>
<input id="id_name" type="text" name="name" maxlength="50">
</p>
<p>
<label for="id_email">Email address</label>
<input type="text" name="email" id="id_email">
</p>
... etc
label
したがって、次を使用して CSS スタイルシートでターゲットを設定できます。
label {
width: 15%;
}