2013-01-24 4 views
2

Honnêtement, je n'ai pas encore maîtrisé les URL de django. donc j'ai clairement aucune idée de comment contourner ce error.In ma views.py J'ai:Faire face à une erreur NoReverse

def get_category(request,id): 
    categories = Category.objects.get(pk=id).prefetch_related('item') 
    context={ 
     'categories':categories, 
    } 
    return render_to_response('category.html',context,context_instance=RequestContext(request)) 

Dans mon urls.py:

url(r'^menu/(\d+)$',get_category, name="f4l_menu"), 

et dans mon modèle,

<a href="{% url f4l_menu category.id %}"> 

cette renvoie une erreur,

Reverse pour 'f4l_menu' avec les arguments '(' ',)' et les arguments '{}' non trouvés.

Comment puis-je résoudre ce problème?

+0

merci les gars mais j'ai toujours la même erreur .. –

Répondre

1

Essayez les éléments suivants:

urls.py

url(r'^menu/(?P<id>\d+)$',get_category, name="f4l_menu"), 

modèle

{% load url from future %} 

<a href="{% url "f4l_menu" id=category.id %}"> 
0

Vous confondez les noms entre la vue et le contexte dans le modèle. Dans le modèle, vous utilisez category et dans la vue que vous affectez categories. Fixation de la vue, il est fin comme ça:

Vue:

def get_category(request,id): 
    category = Category.objects.get(pk=id).prefetch_related('item') # See? Here. 
    context={ 
     'category': category, 
    } 
    return render_to_response('category.html', context, context_instance=RequestContext(request)) 

Modèle:

<a href="{% url f4l_menu category.id %}"> 
0

Il semble category.id est vide '('',)' dans le modèle, comme le message d'erreur indique. Déboguez-le.