J'utilise des vues génériques Django, comment accédez-moi à la demande de mon modèle.
URL: p>
file_objects = { 'queryset' : File.objects.filter(is_good=True), } urlpatterns = patterns('', (r'^files/', 'django.views.generic.list_detail.object_list', dict(file_objects, template_name='files.html')), )
4 Réponses :
Après plus de recherches, en attendant des gens pour répondre à cela. J'ai trouvé:
Vous devez ajouter ceci à vos paramètres.py p> ceci signifie que par défaut, la demande sera transmise à tous les modèles! P> < / p>
Pas strictement vrai - il sera transmis à tous les modèles rendu à l'aide d'un requierContext code>, quelles vues génériques sont.
Cela n'a pas fonctionné pour moi, en utilisant Django 1.7 quatre ans et demi plus tard. En fait, les 1.7 docs ont un avertissement en haut de docs.djangoproject.com/fr /1.7/RF/Settings - "Faites attention lorsque vous remplacez les paramètres, en particulier lorsque la valeur par défaut est un tuple ou un dictionnaire non vide, tel que Middleware_Classes et Template_Context_Processeurs. Assurez-vous de conserver les composants requis par les fonctionnalités de Django que vous souhaitez utiliser. ". Cependant, voir ici pour une solution: Stackoverflow.com/questions/9899113/...
Qu'est-ce qui fonctionne pour moi était d'ajouter: au paramètre.pypy pas sur URLs.py p> p> p>
Aucune des réponses données n'a été résolue mon problème, donc pour ces autres qui ont trébuché sur cet accès à l'objet de la requête dans un modèle de vue générique que vous pouvez faire quelque chose comme ceci dans votre URLS.PYRY:
from django.views.generic import ListView class ReqListView(ListView): def get_context_data(self, **kwargs): # Call the base implementation first to get a context c = super(ReqListView, self).get_context_data(**kwargs) # add the request to the context c.update({ 'request': self.request }) return c url(r'^yourpage/$', ReqListView.as_view( # your options ) )
acclamations! p> p>
Essayez d'utiliser la méthode get_queryset.
def get_queryset(self): return Post.objects.filter(author=self.request.user)
super! C'est très mauvais documenté à Django. J'ai besoin exactement de la demande Obj. dans la sous-classe ListView.
Link est mort, mais c'est ici sur web.archive.org: web.archive.org/web/20160923030156/http://www.gregaker.net/2 012 / ...