【发布时间】:2010-11-28 18:51:51
【问题描述】:
我对 Django 很陌生,我在验证方面遇到了一些问题 管理模块中的表单,更具体地说,在 模型形式。我可以用干净的方法验证和操作数据,但是 似乎不会引发任何错误。每当我包括任何加薪 声明我得到这个错误“'NoneType'对象没有属性 'ValidationError'"。当我删除 raise 部分时,一切正常 很好。
然后,如果我使用不同的别名(例如从 django 导入表单作为 blahbalh)重新导入 django.forms(在 clean 方法中),那么我可以使用 blahblah.ValidateException 引发消息。
关于正确做这件事的任何提示或建议?
这是我在 Admin.py 中所做的一个示例:
admin.py
从 django 导入表单 从 proj.models 导入 * 从 django.contrib 导入管理员
类 FontAdminForm(forms.ModelForm):
class Meta:
model = Font
def clean_name(self):
return self.cleaned_data["name"].upper()
def clean_description(self):
desc = self.cleaned_data['description']
if desc and if len(desc) < 10:
raise forms.ValidationError('Description is too short.')
return desc
class FontAdmin(admin.ModelAdmin):
form = FontAdminForm
list_display = ['name', 'description']
admin.site.register(Font, FontAdmin)
-- 谢谢, 一个
【问题讨论】:
-
是否有一些名为 forms 的模块变量?
-
我的意思是解释器可能看到的 admin.py 中名为 forms 的变量,而不是解析模块表单本身。
标签: python django django-models django-admin