7

私はdjangoによって生成されたフォームを使用しています。これは、ブログに投稿した後のコメント フォームとして使用しています。

現在は問題なくレンダリングされますが、適切に配置されていません。これは私が持っているものです。代替テキスト これは私が欲しいものです。代替テキスト

ありがとう

編集:これは、{{ form.as_table }} を使用したときの結果です

代替テキスト

4

5 に答える 5

4

いつか他の誰かに役立つことを期待して、私のソリューションを投稿します。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;
}
于 2010-12-10T21:50:51.273 に答える
3

フォーム テンプレートのカスタマイズを参照してください。これは考えられる解決策の 1 つです。

おそらく、CSS を使用してフォームのスタイルを設定し、フォームを好きなようにレンダリングすることができます。(すなわちas_table() )。

于 2010-12-09T11:06:35.657 に答える
2

デフォルトを使用すると、{% 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%;
}
于 2011-11-11T19:49:22.510 に答える