Le distributeur d'URL ne correspond pas aux paramètres de la requête GET Ainsi, si vous avez un modèle d'URL tel que url(r'^get_count$', view, name='get_count')
Il suffit alors d'inverser l'URL et d'ajouter la requête GET, par exemple :
from django.core.urlresolvers import reverse
from urllib import urlencode
query = (('sex', 5), ('sex', '6'), ('city', 5), ('city', 7))
url = `%s?%s` % (reverse('get_count'), urlencode(query))
Vous devriez le faire dans votre vue, car il est un peu compliqué de faire la même chose dans vos modèles, à moins que vous n'écriviez des requêtes statiques, comme par exemple :
{% url 'get_content' %}?sex=5&sex=6&city=5&city=7
Si vous essayez de filtrer un ensemble de requêtes de manière dynamique en inspectant les éléments suivants request.GET
dans votre optique, je vous suggère de jeter un coup d'œil à django-filter
. Son intégration ne prend que peu de temps et il permet d'assainir et de valider la requête GET, dont l'importance est souvent négligée par les développeurs, ce qui introduit des failles de sécurité. L'utiliser est aussi simple que de passer request.GET
à votre filtre défini et vous obtiendrez immédiatement le jeu de requêtes filtré.