python - Is there a type discrepancy that is causing this 'NoReverseMatch' in Django? -


according django docs, noreversematch happens when "a matching url in urlconf cannot identified based on parameters supplied."

i getting following noreversematch error. question is: why parameter supplied not being caught url? expecting parameter of different type? i'm still not comfortable django urls.

"reverse 'recall' arguments '(<unordered_group: countries>,)' , keyword arguments '{}' not found. 0 pattern(s) tried: []" 

this question revised django noreversematch url issue after suggestions tried.

edited:

images/urls.py (project level)

from django.conf.urls import patterns, include, url  django.contrib import admin admin.autodiscover()  urlpatterns = patterns('',     url(r'^images/', include('images_app.urls', namespace="images_app")),     url(r'^associate/', include('associate.urls', namespace="associate")),     url(r'^admin/', include(admin.site.urls)), ) 

associate/urls.py

from django.conf.urls import patterns, include, url  django.contrib import admin admin.autodiscover()  urlpatterns = patterns('',     url(r'^learn/', "associate.views.learn", name='learn'),     url(r'^recall/(?p<ordered_group>\w+)', 'associate.views.recall', name='recall'),     url(r'^$', "associate.views.index", name='index'), ) 

learn.html

<form action="{% url 'associate:recall' ordered_group %}" method="post">   error caught      {% csrf_token %}      <div>         <label for="recall">enter many members of {{ ordered_group }} can recall </label>         <input type="text" id="recall" name="recall">     </div>     <div id="enter_button">         <input type="submit" value="enter" name="enter" />     </div>     <div id="done_button">         <input type="submit" value="done" name="done" />     </div> </form> 

views.py

def recall(request, ordered_group):   ...   def learn(request): ...  ordered_group = ordered_groups[index]   return render(request, 'associate/learn.html', {'dataset':model, 'ordered_group':ordered_group}) 

the issue is, url pattern expecting regex matches [\w]+ 1 or more wordcharacters.

recall/(?p<ordered_group>\w+) 

but got object.

a better way of doing send id of ordered group object (or other unique identifier), , querying object in view again.

note if go id, url pattern regex be

recall/(?p<ordered_group>\d+) 

and view:

def recall(request, ordered_group):     obj = get_object_or_404(unordered_group, id=ordered_group)     #rest of code..  

Comments

Popular posts from this blog

php - render data via PDO::FETCH_FUNC vs loop -

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

The canvas has been tainted by cross-origin data in chrome only -