2010-08-17 3 views
1

J'ai un problème qui me dérange depuis un moment. Je veux utiliser des dates dans l'admin django pour voir les entrées entre certaines dates. Pour ce faire, j'ai personnalisé ma liste de modifications pour ce modèle et mis un formulaire là-dedans. Lorsque posté, je remplace la méthode queryset comme ceciFaire Django Admin se souvenir de mes paramètres après l'envoi

def queryset(self, request): 
    qs = super(ModelAdmin, self).queryset(request) 

    if request.POST.has_key('date1'): 
     return qs.filter(startdate__gte=request.POST['date1']).filter(startdate__lte=request.POST['date2'])    
    return qs 

Cela fonctionne très bien, mais c'est un petit problème. Les paramètres sont oubliés si je choisis par exemple de trier le résultat de quelque façon que ce soit.

Si je place de ce type dans l'URL directement dans le navigateur afin qu'il ressemble à ce

http // localhost/admin/some/modèle /? Startdate__gte = 2010-01-01 & startdate__lte = 2010- 12-30

Je peux trier mais je veux ensuite parce que tout comme bâton Ils acquerront cette http // localhost/admin/some/modèle /? o = 5 & ot = asc & startdate__lte = 2010-12- 30 & startdate__gte = 2010-01-01

Faire Je dois utiliser un filterspec pour résoudre ce problème?

Merci beaucoup!

Répondre

0

Une demande de modification a été envoyée au projet Django pour demander cette fonctionnalité.

Il attend que quelqu'un écrive des tests pour le correctif proposé avant qu'il ne soit validé, donc vous pouvez le faire ou vous pouvez télécharger le correctif proposé (près du bas de la page) et l'utiliser.

https://code.djangoproject.com/ticket/6903