[英]Passing kwargs to class based view in unittest
I have test like that: 我有这样的测试:
def test_getting_delete_view_invokes_point_changes_and_returns_status_200(self, point_changes):
request = RequestFactory().get(reverse('questions:delete-help', kwargs={'pk': 1}))
view = DeleteHelp.as_view()
view.kwargs['pk'] = 1
response = view(request)
And my view function: 我的观点功能:
class DeleteHelp(DeleteView, LoginRequiredMixin):
model = Help
template_name = 'confirm_deletion.html'
def get_object(self, queryset=None):
return get_object_or_404(Help, pk=self.kwargs['pk'], author=self.request.user)
def get_success_url(self):
point_pk = self.object.answer_to.plan_point.point_of.id
point_changes(point_obj=self.object.answer_to.plan_point)
return reverse('plans:display-public', args=[point_pk])
The question is, how am I supposed to pass 'pk' there? 问题是,我怎么能在那里传递'pk'? I keep getting an error
KeywordError 'pk'
in get_object method. 我在get_object方法中不断收到错误
KeywordError 'pk'
。 If I use self.client
to access this view then it works (why?), but I want to use RequestFactory. 如果我使用
self.client
访问此视图然后它可以工作(为什么?),但我想使用RequestFactory。
Any help would be appreciated. 任何帮助,将不胜感激。
You pass it when you call the view. 您在调用视图时传递它。
view = DeleteHelp.as_view()
response = view(request, pk=1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.