私は、過去数ヶ月間DEBUGモードで動作していた既存の機能的なDjangoアプリケーションを持っています。プロダクションモードで実行するようにサイトを変更すると、新しいReferralモデルオブジェクトを作成しようとする特定のビューにヒットしたときに、次のExceptionの電子メールが私に送信されるようになります。Djangoモデルをインスタンス化するTypeError:isinstance()arg 2はクラスと型のクラス、型、またはタプルでなければなりません
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.2-py2.7.egg/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.2-py2.7.egg/django/contrib/auth/decorators.py", line 20, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/var/django/acclaimd2/program/api.py", line 807, in put_interview_request
referral = Referral()
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.2-py2.7.egg/django/db/models/base.py", line 349, in __init__
val = field.get_default()
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.2-py2.7.egg/django/db/models/fields/related.py", line 955, in get_default
if isinstance(field_default, self.rel.to):
TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types
ご覧のとおり、参照モデルオブジェクトをインスタンス化するだけでこの例外が発生します。ここで問題になっているモデルです。
class Referral (models.Model):
opening = models.ForeignKey(Opening,related_name='referrals',null=False,blank=False)
origin_request = models.ForeignKey('common.request',related_name='referrals',null=True,default=None)
candidate = models.ForeignKey(User,related_name='referrals',null=False,blank=False)
intro = models.TextField(max_length=1000,null=False,blank=False)
experience = models.TextField(max_length=5000,null=False,blank=False)
email = models.CharField(max_length=255,null=False,blank=False)
phone = models.CharField(max_length=255,null=False,blank=True,default='')
def __unicode__(self):
return u"%s" % self.id
これはジャンゴのバグですか、私は知らないうちにその私はべきではない何かをやっていますか?誰でも修正や回避策の提案はありますか?
'put_interview_request interview_request_json ['email'])'ではどうなりますか? –
INSTALLED_APPSに「共通」と呼ばれるアプリがありますか?そのアプリに「リクエスト」モデルがありますか? –
@AbidA - 申し訳ありませんが、この問題を回避しようとした後のスタックトレースのバージョンです。適切なスタックトレースを反映するように最初のスニペットを更新しました。 –