TypeError - ожидаемая строка или буфер для поля даты в django при использовании SelectDateWidget - PullRequest
2 голосов
/ 08 января 2012

У меня есть поле даты в моей модели, и я использую SelectDateWidget (), чтобы предоставить опцию выбора даты пользователя. Имя поля deadline, и вот как я устанавливаю виджет в форме модели

widgets = {
        'deadline' : SelectDateWidget(),            
    }

Теперь проблема в том, что когда я отправляю форму, я получаю следующую ошибку TypeError - expected string or buffer. Я немного поработал и обнаружил, что Datewidget возвращает значение bool вместо строки.

Если я удаляю виджет даты и отправляю дату обычно в формате ГГГГ-ММ-ДД, все работает нормально. Кто-нибудь может помочь понять, что здесь на самом деле идет не так?

Редактировать: Добавление моей модели и формы модели

class UniData(models.Model):

    name = models.CharField(max_length=500)
    slug = models.SlugField(blank=True, unique=True)
    SCORE_CHOICES = (
        (0 , 'Not Sent'),
        (1 , 'Sent'),
    )
    YES_NO = (
        (0 , 'NO'),
        (1 , 'YES'),
    )
    Score = models.IntegerField(choices=SCORE_CHOICES, default=0)

    creator = models.ForeignKey(User, blank=True, null=True)
    deadline = models.DateField(blank=True, null=True)
    submitted = models.IntegerField(choices=YES_NO, default=1)
    created_date = models.DateTimeField(null = True)

    class Meta:
        ordering = ('-created_date',)

    def __unicode__(self):
        return u'%s' %(self.name)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.universityName)
        super(UniData, self).save(*args, **kwargs)

    def get_absolute_url(self):
        return "/ScoreTracker/%s/" % self.slug

А модель - это

class UniForm(ModelForm):

    class Meta:
        fields = ['name', 'Score','deadline', 'submitted']
        widgets = {
            'name': TextInput(attrs={'value':'University Name', 'class':'default-value',}),
            'Score': RadioSelect(choices=SCORE_CHOICES),
            'submitted': RadioSelect(choices=YES_NO),
            'deadline': SelectDateWidget(),     
        }
...