给出isinstance()arg 2的Django Modelform必须是类和类型的类,类型或元组错误

时间:2011-04-25 06:58:37

标签: django django-models django-forms

在特定视图中出现以下错误:

isinstance() arg 2 must be a class, type, or tuple of classes and types

Request Method:     GET
Request URL:    ***********CHANGED FOR PRIVACY
Django Version:     1.3
Exception Type:     TypeError
Exception Value:    

isinstance() arg 2 must be a class, type, or tuple of classes and types

Exception Location:     /usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/db/models/fields/related.py in get_default, line 867
Python Executable:  /usr/bin/python

同一视图不会对我的本地开发环境造成任何错误。 此站点部署在运行Apache的Amazon Ec2上。

这是抛出异常的确切代码:
form = MyCustomModelForm() # An unbound form

2 个答案:

答案 0 :(得分:5)

奇怪的巧合,但我相信你的问题与to this question密切相关。

我会尝试在那里发布相同的解决方案:在模型框架之前强制get_models

from django.db.models.loading import cache as model_cache
if not model_cache.loaded:
    model_cache.get_models()

您的ModelForm是否可能在您的模型相关应用尚未完成加载的位置实例化?

这是另一个例子:这个人有一个中间件在字符串被解析为一个对象之前访问一个带有外键字符串的模型,并且它出现的问题只出现在apache上 - 据他介绍,因为开发环境首先运行get_models() - 不知道。

http://groups.google.com/group/django-users/msg/d1482a2eba45e498?dmode=source

答案 1 :(得分:0)

试试这个:

self.assertIsInstance(Inst,pywbem.cim_obj.CIMInstance,"input Instance {} is not a CIMInstance object".format(Inst))