2016-04-02 14 views
0

Ich habe alle ähnlichen Probleme durchgemacht, und ich habe nirgendwo hingekommen und ich habe die djangogirls und die officail Django Tutorials durchgegangen und soweit ich weiß, sollte es funktionieren.NoReverseMatch at/index/

In Umfragen/templates/index.html Datei habe ich dies:

[...] 
{% if forms %} 
    <ul> 
     {% for form in forms %} 
      <li> 
       <h1><a href="{% url 'form_detail' pk=form.pk %}"> 
        {{ form.fname }} 
       </a></h1> 
       [...] 

In meinen polls/urls.py Datei, die ich diese:

from django.conf.urls import url 
from . import views 

app_name = 'polls' 
urlpatterns = [ 
    [...] 
    url(r'^index/$', 'polls.views.site_index'), 
    [...] 
    url(r'^form/(?P<pk>\d+)/$', views.form_detail, name='form_detail'), 
    [...] 

In meinem Umfragen/views.py Datei Ich habe dies:

from django.shortcuts import render, render_to_response, redirect, get_object_or_404 
from django.http import HttpResponse, HttpResponseRedirect 
from django.core.context_processors import csrf 
from django.core.urlresolvers import reverse 
from django.contrib.auth.models import User 
from .models import Nform, Choice, Question, Post 
from django.template import loader 
from django.utils import timezone 
from django.views import generic 
from django.contrib import auth 
from django.db import models 
from .form import PostForm 

def site_index(request): 
    forms = Nform.objects.order_by('-published_date') 
    return render_to_response('polls/index.html', {'forms': forms}) 


def form_detail(request, pk): 
    current_form = get_object_or_404(Nform, pk=pk) 
    fame = current_form.fname 
    latest_question_list = Question.objects.filter(for_form=fame).order_by('-pub_date') 
    choice_quest_list = [] 
    text_quest_list = [] 
    form = PostForm() 
    for i in range(len(latest_question_list)): 
     if len(latest_question_list[i].choice_set.all()) == 0: 
      text_quest_list.append(latest_question_list[i]) 
     else: 
      choice_quest_list.append(latest_question_list[i]) 
    return render(request, 'polls/read_only.html', {'choice_quest_list': choice_quest_list, 'text_quest_list': text_quest_list, 'form_name': fame, 'form': form}) 
[...] 

Ich gehe davon aus, dass ich irgendwo einen sehr einfachen Fehler gemacht habe und ich wäre jedem sehr dankbar, der ihn findet.

Sehen Sie diese issue für Bilder.

Here ist ein Link zu meinem Code.

Thanks :)

Antwort

1

Dies geschieht, weil Sie eine Variable app_name in Ihrer Anwendung urls.py. Namen definiert haben

Wenn Sie diese Variable definieren, wird sie zu Ihrem URL-Namespace.

Sie entweder Ihre URL wie folgt umkehren:

<h1><a href="{% url 'polls:form_detail' pk=form.pk %}"> 

oder die app_name Variable entfernen direkt den URL-Namen zu verwenden.

Lesen Sie mehr über reversing url names @ django-docs

+0

Danke das hat funktioniert :) –