Django 1.6 にアップグレードすることで問題が解決したようです。何が起こっていたのか、ただ興味があります。
OSQAを既存の Django アプリと統合しようとしていますが、非常に微妙な問題が発生しています。それを見てください --- これは 1 つの PDB セッションであり、多重継承はありません。
(Pdb) p type(self.get_query_set())
<class 'django.db.models.query.QuerySet'>
(Pdb) p type(self.get_queryset())
<class 'forum.models.node.NodeQuerySet'>
Django 1.5 では、デフォルトで( のように)の行を指すdjango.db.models.Manager
メソッドがあります。Django 1.6では、この同じメソッドが を指しています。ちなみに、これは 同じファイルの行です。all
MyModel.objects.all()
get_query_set()
128
django/db/models/manager.py
get_queryset
get_query_set
133
実際、 Django 1.5*** AttributeError: AttributeError("'QuerySet' object has no attribute 'filter_state'",)
ではOSQA が壊れて
います。forum/views/readers.py
207
questions = initial.filter_state(deleted=False)
、そのような機能はありません。この場合、それは として渡さQuestion.objects.all()
れinitial
ますが、どういうわけか、必要なメソッドを持つ のdjango.db.models.query.QuerySet
代わりに
なってしまいます。forum.models.node.NodeQuerySet
(Pdb) from forum.models import Question
(Pdb) type(Question.objects.all())
<class 'django.db.models.query.QuerySet'>
(Pdb) type(Question.objects.get_queryset())
<class 'forum.models.node.NodeQuerySet'>
(Pdb) type(Question.objects.get_query_set())
<class 'django.db.models.query.QuerySet'>