2012-03-14 2 views
1

두 개의 모델 Team, Player가 있습니다. 플레이어는 팀에게 중요한 역할을합니다.django.views를 사용하여 자식 개체에 액세스하는 방법

는 지금은보기를 갖고 싶어하고 내가

그것은 나에게 오류를 제공
def player(request, team_id, player_id): 
    template = get_template('player.html') 
    loggedinuser = request.user 
    team = Team.objects.get(id=team_id) 
    player = Player.objects.get(id=player_id) 

    page_vars = Context({ 
     'loggedinuser': loggedinuser, 
     'team': team, 
     'player': player, 
    }) 

    output = template.render(page_vars) 
    return HttpResponse(output) 

처럼 내보기를 정의하면이

url(r'^team/(?P<team_id>)/player/(?P<player_id>)/$', 'djangocricket.Cricket.views.player'), 

처럼 내 urls.py를 정의했습니다.

url() takes at least 2 arguments (1 given) 

도움을 주시면 대단히 감사하겠습니다.

// 마우스

답변

2

문제는 urls.py 문에 있습니다. 이 url이 요청 될 때 호출 할 뷰를 추가해야합니다. url에는이 두 가지 인수가 필요합니다.

url(r'^team/(<team_id>\w+)/player/(<player_id>\w+)', 'views.player'), 

또한 Béres Botond가 지적했듯이 패턴도 잘못 생각했습니다. 그가 말했듯이, ?P을 괄호 안의 각 패턴의 시작 부분에 추가하십시오.

+1

을 thusly 히 :이 같은이어야한다'URL (R '^ 팀/( \ w +)/player/( \ w +) ','view.player ', name ='team-player ')'{% url team-player team.id 플레이어}를 사용하여 호출 할 수 있습니다. id %}'템플릿에. –

1

당신의 URL conf에서 당신은 또한 그 패턴이 가리키는 관점을 말해야합니다. 또한 패턴의 매개 변수가 올바르게 정의되지 않았습니다. 자세한 내용은

url(r'^team/(?P<team_id>\w+)/player/(?P<player_id>\w+)/$', 'myproject.myapp.views.player'), 

가 urlconf의 문서 체크 아웃 : 나는 그것이 URL의 이름을 추가하는 것이 좋습니다 간주 추가 https://docs.djangoproject.com/en/1.3/topics/http/urls/

+0

나는 이것을 한 .. 이제 내 views.py는이 URL (r '^ team/(? P )/player/(? P )/$', 'djangocricket.Cricket.views.player')처럼 보입니다. .하지만 그것은 나에게 404 오류를 제공합니다. – debuggerpk

관련 문제