目标:只有2个输入框,顶部没有标签。
问题:使用django表单应用程序,标签会出现在输入框的顶部(参见图片)。
我的models.py代码是:
from django.db import models
# Create your models here.
class Customer(models.Model):
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
def __str__(self):
return self.first_name + ', ' + self.last_name
我的0001_inital.py是
# Generated by Django 2.1.7 on 2019-11-01 19:21
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Customer',
fields=[
('id', models.AutoField(auto_created=True,
primary_key=True, serialize=False, verbose_name='ID')),
('first_name', models.CharField(max_length=200)),
('last_name', models.CharField(max_length=200)),
],
),
]
答案 0 :(得分:0)
将verbose_name
--(django doc)设置为空字符串
A"
答案 1 :(得分:0)
您可以render the form manually [Django-doc],例如不带标签:
<form method="post" action="…">
{{ form.non_field_errors }}
<div>
{{ form.first_name.errors }}
{{ form.first_name }}
</div>
<div>
{{ form.last_name.errors }}
{{ form..first_name }}
</div>
</form>
在ModelForm
中,您可以指定一个占位符,例如:
class CustomerForm(ModelForm):
class Meta:
model = Customer
widgets = {
'first_name': TextInput(attrs={'placeholder': 'First name'}),
'last_name': TextInput(attrs={'placeholder': 'Last name'})
}
但是最好看一下django-crisply-forms
[readthedocs]这样的表单渲染器,并带有以通用方式渲染表单的逻辑。