2017-03-11 4 views
0

J'essaie de rendre la page de détails du produit en donnant l'URL www.example.com/product_name/product_id. Mais je reçois cette erreur.Erreur lors du rendu du modèle

Inverser pour 'product_details' avec les arguments '(u'lehnga choli', 43) 'et le mot clé' {} 'non trouvé. 1 motif (s) a essayé: [ '(? P [a-zA-Z] *)/(? P [0-9] +)/$']

voici mon urls.py

url(r'^(?P<product_name>[a-zA-Z]*)/(?P<product_id>[0-9]+)/$', 'designer.views.product_details', name='product_details'), 

et voici mes urls dans le template html

{% url 'product_details' designs.name designs.id %} 

et ceci est mon views.py

def product_details(request, product_name, product_id): 
    design = Design.objects.get(id=product_id)  

    return render_to_response("designer/product_detail.html", { 
     "design":design,      
     "current": "product_detail", 
    }, context_instance=RequestContext(request)) 
+0

Il y a un espace dans le nom (qui ne peut pas être utilisé dans une URL) - basé sur ce que vous essayez de faire, il semble que vous aurez besoin d'un [ 'SlugField'] (https: //docs.djangoproject.com/fr/1.10/ref/models/fields/#slugfield) –

+1

merci mais existe-t-il une solution alternative pour cela? comment je peux supprimer l'espace dans le tag de modèle –

+0

Ajout d'une réponse maintenant;) –

Répondre

0

Il y a un espace dans le nom (qui ne peut pas être utilisé dans une URL). Comme je l'ai mentionné dans mon commentaire, vous voudrez peut-être regarder dans un puisque vous êtes à la recherche par le Designid dans votre vue SlugField

Cependant, il n'a pas vraiment si le modèle a une limace. Vous pouvez utiliser la balise slugify pour la rendre passable via l'URL.

{% url 'product_details' designs.name|slugify designs.id %} 

Cela nécessite un petit tweak à votre URL aussi bien, car les espaces sont remplacés par un - - et je viens d'utiliser \w en général.

url(r'^(?P<product_name>[\w-]+)/(?P<product_id>[0-9]+)/$', 'designer.views.product_details', name='product_details'), 
+0

ouais c'est bien fonctionne .. merci –