【发布时间】:2016-06-06 07:05:41
【问题描述】:
我想为应用程序进行测试,但我做不到。 我有这样的功能:
def get_queryset(self):
return User.objects.filter(id=self.request.user.id)
我写了这样的测试:
def test_Uzytkownik_get_query(self):
self.c = Client()
self.user = User.objects.create_user(username='john', email='lennon@thebeatles.com', password='johnpassword')
self.c.login(username='john', password='johnpassword')
response = self.c.get('/')
self.assertEqual(UzytkownikViewSet.get_queryset(response.context['user']),"john")
但我明白了
AttributeError: 'User' object has no attribute 'request'
我知道 john 实际上不是这个查询集的结果,但我不能做任何测试,因为这个:self.request.user.whatever。
@编辑
对不起,我没有提供这些信息。我正在使用 Django,这个函数所在的类如下所示:
class UzytkownikViewSet(viewsets.ModelViewSet):
def get_queryset(self): return
User.objects.filter(id=self.request.user.id)
【问题讨论】:
-
您使用的是什么 ORM 和/或框架? Django、Flask、SQLAlchemy?
-
get_queryset是User的方法吗? -
@LutzHorn 它不会出现在
UzytkownikViewSet.get_queryset -
您在
get_queryset(self)内使用self.request,这会导致错误。那么这里的self是什么?这是什么类的方法? -
如果您有信息要添加,请edit您的问题。请同时选择适用的标签。
标签: python django django-views django-tests