不接受空白表单字段

时间:2012-02-07 01:56:47

标签: python django django-models

PostgreSQL数据库中的表:

CREATE TABLE pmss_recordmodel
(
  id serial NOT NULL,
  "Name" character varying(100),
  CONSTRAINT pmss_recordmodel_pkey PRIMARY KEY (id)
)
WITH (OIDS=FALSE);
ALTER TABLE pmss_recordmodel OWNER TO postgres;

型号:

class RecordModel(models.Model):

    def __unicode__(self):
        return self.Name

    Name = models.CharField(max_length = 100, unique = False, null = True, blank = True)

当我使用空白名称字段发布数据时,form.is_valid()返回False。为什么?我错过了什么吗?

编辑:

class RecordForm(forms.ModelForm):

    class Meta:
        model = RecordModel

    Name = forms.CharField(label = "Имя ", widget = forms.TextInput(attrs = {'size': 15}))

2 个答案:

答案 0 :(得分:1)

Django forms documentation

  

默认情况下,每个Field类都假定值是必需的

将“required”参数设置为False:

Name = forms.CharField(required = False, label = "Имя ", widget = forms.TextInput(attrs = {'size': 15}))

答案 1 :(得分:0)

您可能在数据库中如何定义字段时遇到问题。

这似乎是将syncdb与最初没有blank=True null=True的字段一起执行的常见情况,然后在稍后(在初始syncdb之后)添加这些字段以使字段不需要。只需再次运行syncdb即可应用这些设置。它需要数据库迁移或数据库刷新(将清除现有数据,这在开发中不一定是坏的)。