Puis-je accéder à la valeur d'un argument nommé (à partir de l'URL) dans un modèle Django?
Comme puis-je accéder à la valeur de this_name
ci-dessous à partir d'un modèle Django?
url(r'^area/(?P<this_name>[\w-]+)/$', views.AreaView.as_view(), name="area_list")
Je pouvais obtenir le chemin URL complet et le décomposer, mais je voulais vérifier s'il y avait un moyen simple de le faire, car il a déjà un nom.
Le transmettre dans le contexte des données de la vue peut être une alternative mais je ne sais pas si j'ai besoin de le transmettre car je suppose que le modèle l'aurait déjà d'une manière ou d'une autre? Impossible de trouver une méthode directe dans API de demande cependant.
Dans la vue, vous pouvez accéder à l'URL args
et kwargs
en tant que self.args
et self.kwargs
.
class MyView(View):
def my_method(self):
this_name = self.kwargs['this_name']
Si vous souhaitez uniquement accéder à la valeur dans le modèle, vous n'avez pas besoin de modifier la vue. La base get_context_data
La méthode ajoute la vue au contexte sous la forme view
, vous pouvez donc ajouter ce qui suit à votre modèle:
{{ view.kwargs.this_name }}