Пустые поля формы не принимаются - PullRequest
0 голосов
/ 07 февраля 2012

Таблица в базе данных 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)

Когда я POST-данные с пустым полем Name, form.is_valid () возвращает False.Зачем?Я что-то упустил?

РЕДАКТИРОВАТЬ:

class RecordForm(forms.ModelForm):

    class Meta:
        model = RecordModel

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

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Django формы документации :

По умолчанию каждый класс поля предполагает, что значение является обязательным

Установите для аргумента "required" значение False как таковое:

Name = forms.CharField(required = False, label = "Имя ", widget = forms.TextInput(attrs = {'size': 15}))
0 голосов
/ 07 февраля 2012

У вас могут быть проблемы с определением поля в вашей базе данных.

Похоже, что это может быть обычная ситуация, когда syncdb изначально имеет поле, не имеющее blank=True null=True, а затем добавляет эти терминыпозже (после первоначального syncdb) сделать поле не обязательным.Эти настройки не будут применены простым повторным запуском syncdb.Это требует переноса базы данных или очистки базы данных (удалит существующие данные, что не обязательно плохо в разработке).

...