【发布时间】:2013-05-23 14:26:23
【问题描述】:
我正在尝试重用现有的 Django 项目,该项目运行良好,但在特定部分遇到错误。我只使用管理界面和相当多的模型。错误如下:
每当我尝试通过管理员添加(此特定模型的)对象时,我都会得到:
'NoneType' object has no attribute 'all'
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/myapp/style/add/
Django Version: 1.5.1
Exception Type: AttributeError
Exception Value:
'NoneType' object has no attribute 'all'
Exception Location: /usr/lib/python2.7/site-packages/django/forms/models.py in __iter__, line 919
我在 admin.py 中找到了“NoneType”:
class StyleForm(forms.ModelForm):
featured_item = forms.ModelChoiceField(None, required=False)
在 models.py 中:
def featured_item_id(self):
fi_list = FeaturedItem.objects.filter(style=self)
if fi_list.count() > 0:
return fi_list[0].item.id
else:
return None
我会理解,如果该项目从未工作过并且此时在其他地方没有工作,那么可能会出现这样的错误,但这是一个功能性 Django 项目,我所做的只是将它迁移到本地,修复 settings.py因此......它可能来自目前未填充的数据库吗?
非常感谢任何帮助,我已经坚持了很长一段时间,重要的是我设法克服了这个烦人的错误..
提前感谢大家的时间和建议。
【问题讨论】:
-
可能是一些缓存的编译文件运行良好。虽然看起来很奇怪。你可能想要
forms.ModelChoiceField(FeaturedItem.objects.none(), required=False) -
非常感谢它工作得很好:-)
标签: django model attributes admin nonetype