如何让Django ModelForm只有一个字段?

时间:2012-11-03 20:16:27

标签: django forms field modelform

我有一个班级,它是modelForm。

class UserGoal(models.Model):
    user = models.ForeignKey(User)
    goal = models.ForeignKey(Goal)
    deadline = models.DateTimeField(blank=True, null=True)
    goalETA = models.DateTimeField(blank=True, null=True)
    def __unicode__(self):
        return u'%s, %s, %s ' %(self.user, self.goal, self.deadline)

class partialGoalSetForm(ModelForm):
    class Meta:
        model = UserGoal
        fields = ('deadline', 'goalETA') 

此代码适用于只有2个字段(截止日期和goalETA)在表单中。但是,如果我从列表中删除一个:

 fields = ('deadline')

然后,我收到以下错误:

django.core.exceptions.FieldError:为UserGoal指定的未知字段(a,e,d,i,l,n)

似乎是字符标记“截止日期”。非常奇怪。

我尝试过的解决方案包括:

 fields = ('deadline')

 fields = 'deadline'

 field = ('deadline')

 field = 'deadline'

这些都不起作用。

有什么建议吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

由于字段只有一个项目,因此需要将尾随逗号视为元组。否则,它被视为字符串"deadline"

fields = ('deadline',)