【发布时间】:2012-02-22 13:48:06
【问题描述】:
Django 1.2.x 可以很好地处理这些问题,但 Django 1.3.1 中存在问题,因为我有验证错误,表明所选选项不在列表中。 我有模型表格
型号:
class Cvet(models.Model):
...
template = models.ForeignKey(Predefinisan_tekst, blank=True, null=True, related_name='template')
...
表格:
class NoviCvetForm(forms.ModelForm):
class Meta:
model = Cvet
def clean(self):
super(NoviCvetForm, self).clean()
cleaned_data = self.cleaned_data
template = cleaned_data.get("template")
if template == '------':
cleaned_data["template"] = None
return cleaned_data
现在在 django 模板中 template 是选择字段,我手动创建了 <option selected="selected">------</option> 作为列表中的第一个选项。因此,当在此字段中没有用户选择提交表单时,request.POST 将template 字段的值发送为------,这是无效的选项。我需要在clean 方法中更改什么才能将该字段的值设为无?
【问题讨论】:
-
这对我来说很好 - 你确定你 (a) 重新启动了服务器 (b) 得到了正确的支票值吗?此外,如果您不调用 clean 的超类版本,是否存在差异可能值得检查。
-
我也尝试不使用
super(NoviCvetForm, self).clean(),但结果是一样的。是的,服务器已重新启动,值为------。
标签: django django-forms