Básicamente, quiero usar una vista genérica que enumera los objetos basados en un nombre de usuario. Ahora, la pregunta es, ¿cómo hago algo como:
(r'^resources/$', ListView.as_view( queryset=Resources.objects.filter(user=request.user.username), ... ) )
Sin embargo, no pude encontrar una forma de acceder al objeto HttpRequest (solicitud) … ¿O necesito usar mis propias vistas y hacer toda la selección de objetos allí?
Si realmente desea saturar su URLconf directamente, puede hacerlo así:
(r'^resources/$', lambda request: ListView.as_view(queryset=Resources.objects.filter(user=request.user.username), ...)(request) )
O acceda a la solicitud subclasificando la vista:
class MyListView(ListView): def dispatch(self, request, *args, **kwargs): self.queryset = Resources.objects.filter(user = request.user.username) return super(MyListView, self).dispatch(request, *args, **kwargs)
Puedes intentar subclasificar la vista genérica:
class PublisherListView(ListView): def get_queryset(self): return Resources.objects.filter(user=self.request.user.username)
Entonces su entrada de urls se vería como:
(r'^resources/$', PublisherListView.as_view( ... ) )
Puede encontrar más información sobre el filtrado dynamic en vistas basadas en clases aquí: http://docs.djangoproject.com/en/dev/topics/class-based-views/#dynamic-filtering