sto cercando di utilizzare RequestFactory per testare un detailview con il seguente test case:Come posso passare un PK o una lumaca a un DetailView utilizzando RequestFactory in Django?
def test_device_homepage(self):
request = self.factory.get('/devices/1/', {'pk': 1})
response = DeviceView.as_view()(request)
self.assertEqual(response.status_code, 404)
Quando eseguo la prova di cui sopra, tuttavia, ottengo il seguente messaggio di errore:
AttributeError: Generic detail view DeviceView must be called with either an object pk or a slug.
Se posso stampare la richiesta dopo la creazione, posso vedere il seguente:
<WSGIRequest
path:/devices/1/,
GET:<QueryDict: {u'pk': [u'1']}>,
Per quanto posso dire, che dovrebbe essere tutto ciò che la req detailview vuole essere in grado di avanzare oltre il punto nel codice che sta generando il messaggio di errore sopra.
Per completezza traceback completo è qui sotto:
Traceback (most recent call last):
File "/vagrant/devices/tests/test_views.py", line 17, in test_device_homepage
response = DeviceView.as_view()(request)
File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py", line 86, in dispatch
return handler(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/generic/detail.py", line 108, in get
self.object = self.get_object()
File "/usr/local/lib/python2.7/dist-packages/django/views/generic/detail.py", line 48, in get_object
% self.__class__.__name__)
Grazie per questo, funziona bene! – Matt
Grazie .. questo funziona come un incanto! – user01