2012-11-12 2 views
1

나는이 오류를 받고 있어요, 왜 모르겠어요 :장고 NoReverseMatch 5

여기
Reverse for 'buildings.views.generate' with arguments '()' and keyword arguments '{'new_id': -1}' not found. 

는 (의 일부) 내 urls.py :

url(r'^buildings/generate/new_building(?P<new_id>\d+)', 'buildings.views.generate'), 

뷰 :

:

@login_required 
    def generate(request, new_id): 
      session = {} 

      if new_id == -1: 
        other_buildings = Building.objects.filter(utente=request.user, pronto=False) 

        if other_buildings.length > MAX_TEMPORARY_BUILDINGS: 
          return redirect('buildings.views.index') 
        else: 
          building = Building(utente=request.user, pronto=False) 
          building.save() 
          return redirect('buildings.views.generate', building_id=building) 

      elif new_id >=0: 

        building = Building.objects.filter(pk=new_id) 

        if building.utente != request.user: 
          raise Http404 
        elif building.pronto: 
          return redirect('buildings.views.detail', building_id=new_id) 
        elif building.nome == None: 
          buildings= Building.objects.filter(pronto=True).order_by('utente') 
          session['buildings'] = buildings 

        session['building'] = building       
      else: 
        raise Http404 

      return render_to_response('buildings/generate/generate-index.html', session, context_instance = RequestContext(request)) 

그리고 여기가 오류를 생성하는 템플릿 "base.html"의 코드

<li><a href="{% url buildings.views.generate new_id=-1 %}">New Building</a></li> 

오류가 보이지 않으므로 도움주세요.

답변

6

아마도 양수에 대해 작동합니다.

-1

new_id의 스펙과 일치하지 않습니다

(?P<new_id>\d+) 

당신은 너무 - 일치하는지 확인해야합니다. 나는 이것이 작동해야한다고 생각한다. (테스트되지 않았다) :

(?P<new_id>-?\d+)