6

djangoModelFormに必要なフィールドがいくつかあります。必須フィールドの後に赤い星(*)を追加するにはどうすればよいですか?

4

2 に答える 2

28

これを自動的に実行することを想定しているので、いくつかの異なる方法の1つを次に示します。

{% for field in form %}
    <label for="{{ field.auto_id }}">{{ field.label_tag }}
    {% if field.field.required %}
        <span class="required">*</span>
    {% endif %}
    </label>
{% endfor %}

次に、CSSを使用してアスタリスクのスタイルを設定できます。

または、必要に応じて、代わりにCSSを使用してアスタリスクを追加できます。

<style type="text/css">
    span.required:after { content: '*'; }
</style>
{% for field in form %}
    <label for="{{ field.auto_id }}">
    {% if field.field.required %}
        <span class="required">{{ field.label_tag }}</span>
    {% else %}
        {{ field.label_tag }}
    {% endif %}
    </label>
{% endfor %}

必須フィールドで他のこともしたい場合は、これがおそらくより良いオプションです。

ただし、フィールドに個別にアクセスしない場合({{form.as_p}}を使用する場合など)は、ModelFormにプロパティを追加できます。

class FooForm(forms.ModelForm):
    required_css_class = 'required'

これにより、「required」クラスを持つものとして必須のすべてのフィールドが定義されます(したがって、上記のCSSコードを使用して、アスタリスク(またはその他の目的で実行したいもの)を追加できます。

于 2012-09-02T10:40:01.973 に答える
1

jQueryラベルを選択したり、ラベルに追加したりするために使用することもできます。

たとえば、このブートストラップフォームがある場合

<form class="form-horizontal">
  <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
    <div class="col-sm-10">
      <input type="email" class="form-control" id="inputEmail3" required="required">
    </div>
  </div>
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">Password</label>
    <div class="col-sm-10">
      <input type="password" class="form-control" id="inputPassword3">
    </div>
  </div>
</form>

次に、必須フィールドにスターを追加する場合。

$('input,textarea,select').filter('[required]').parent().parent().find("label").append("*");

また、必須フィールドラベルのクラスを指定して、太字などにすることもできます。

$('input,textarea,select').filter('[required]:visible').parent().parent().find("label").addClass("required_label");
于 2015-04-13T20:38:53.937 に答える