2017-10-10 7 views
0

Si j'ai deux urls:Django-je utiliser la requête ou le chemin d'URL pour passer un paramètre

url(r'^maker/$', views.maker_list) #lists a car makers 
url(r'^model/$', views.model_list) #lists of car models 

Si je clique sur l'URL pour les modèles il me donne une liste de modèles. Si je clique sur l'URL des fabricants, cela me donne une liste de fabricants.

Je pensais si je clique sur un fabricant par exemple. CarMaker Je veux qu'il me prenne à un sous-ensemble de tous les modèles, à savoir. ceux qui sont faits par le fabricant, par exemple. Constructeur automobile.

Est le meilleur moyen de l'avoir dans le chemin comme model/CarMaker/ ou comme une requête comme model/?maker=CarMaker. J'ai lu si son unique le mettre dans le chemin, cependant, cela ressemble à une recherche/raffinement, qui sont des requêtes. Je suis un peu confus où dessiner la ligne.

question de côté:

Faut-il model/CarMaker/ ou CarMaker/model/?

+1

Vous voulez probablement 'make/model' car' makes' détermine quels 'models' vous avez. –

+1

Le mettre dans l'URL est préférable pour avoir des URL propres et aussi la validation de regex est faite par Django pour vous. À part ça, ça n'a pas vraiment d'importance. – Selcuk

Répondre

0

Parce que les modèles sont sous fabricants, l'URL doit être quelque chose comme ceci:

/maker/<maker_id>/models 

Mais si vous n'avez pas l'identifiant et vous filtrez simplement par son nom, en utilisant un paramètre GET semble être le bon option pour moi:

/models?maker=bmw 

Espérons que ça aide!