私はMultipleObjectMixin
とFormView
の両方を継承するDjangoのクラスベースのビューを使用しています。コードはそうのようなものです:MultipleObjectMixinとFormViewの組み合わせ
class UnseenActivityView(MultipleObjectMixin, FormView):
form_class = UnseenActivityForm
template_name = "user_unseen_activity.html"
paginate_by = 20
def get_queryset(self):
queryset = #some queryset
return queryset
def get_context_data(self, **kwargs):
context = super(UnseenActivityView, self).get_context_data(**kwargs)
if self.request.user.is_authenticated():
context["verified"] = VERIFIED_USERS #this is a list of special IDs
return context
コードのこの作品は、私にu'object_list'
ためkeyerror
を返します。 object_list
はkwargs辞書にはありません。誰かがこの問題のトラブルシューティングを手助けできますか?私はFormView
が私のcbvに必要でしたが、ページ番号が付けられたものはMultipleObjectMixin
です。
Traceback (most recent call last):
File "/home/hassan/.virtualenvs/myenv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 115, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/hassan/.virtualenvs/myenv/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 25, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/home/hassan/.virtualenvs/myenv/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "/home/hassan/.virtualenvs/myenv/local/lib/python2.7/site-packages/django/views/generic/base.py", line 86, in dispatch
return handler(request, *args, **kwargs)
File "/home/hassan/.virtualenvs/myenv/local/lib/python2.7/site-packages/django/views/generic/edit.py", line 155, in get
return self.render_to_response(self.get_context_data(form=form))
File "/home/hassan/Desktop/myproject/myapp/views.py", line 5494, in get_context_data
context = super(UnseenActivityView, self).get_context_data(**kwargs)
File "/home/hassan/.virtualenvs/myenv/local/lib/python2.7/site-packages/django/views/generic/list.py", line 95, in get_context_data
queryset = kwargs.pop('object_list')
KeyError: u'object_list'
デバッグの手助けが必要な場合は、トレースバックを送信してください。 – Alasdair
@Alasdair:トレースバックを追加しました。ソラリスモケは、私が遭遇したデッドエンドの正当な理由を与える。私はおそらく自分自身でFormviewでページ分割を実装する必要があります。あなたがその点で追加できるものがあれば、答えとして自由に感じてください。 –
Djangoの非常に古いバージョンを使用しています - Django 1.6以降では 'kwargs.pop( 'object_list'、self.object_list)'を代わりに使用しています。 @ solarissmokeが引用したDjangoのドキュメントのヒントに同意します。私は、一般的な意見があまりにも多くなると予想していると思います。ビューで[Paginator](https://docs.djangoproject.com/ja/1.9/topics/pagination/)クラスを使用してみてください。 – Alasdair