ModelForm
私のアプリには、次のような非常に単純なものがあります。
# ModelForm
class ProductForm(ModelForm):
class Meta:
model = MyModel
exclude = ['created', 'last_modified', 'serial_number']
# Model
class BaseModel(models.Model):
created = models.DateTimeField(auto_now_add=True, blank=True, null=True)
last_modified = models.DateTimeField(auto_now=True, blank=True, null=True)
class MyModel(BaseModel):
product = models.TextField(verbose_name='Product Name')
serial_number = models.TextField(verbose_name='Serial Number')
そして、次のようなフォーム:
# Form
<form method="POST" action="{% url some_url %}">
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
{% for field in form %}
{% if field.errors %}
<div>{{ field.errors }}</div>
{% endif %}
<div>
{{ field.label_tag }}:
{{ field }}
</div>
{% endfor %}
{% endfor %}
<div class="actions">
<input class="button submit focus" type="submit" value="{% trans "Save" %}" />
</div>
</form>
これを使用してビューをチェックアウトすると、コロン ( :
) の後にテキストフィールドが表示されます: ラベルがなくなりました。
さらに、生成された各フォーム フィールドには、次のように設定された属性があります。
...
フォーム フィールドのラベルは
verbose_name
、モデル フィールドの最初の文字を大文字にして設定されます。
私が犯した間違いは何ですか?
問題がある場合は、Django 1.4.1 を使用しています。