我有两个模特Team,Player。玩家对团队有一个关键因素。
现在我想要一个视图,并像我这样定义了我的urls.py
url(r'^team/(?P<team_id>)/player/(?P<player_id>)/$', 'djangocricket.Cricket.views.player'),
如果我定义我的视图
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() takes at least 2 arguments (1 given)
非常感谢帮助。
//小鼠
答案 0 :(得分:2)
问题出在你的urls.py声明中。您需要在请求此URL时添加要调用的视图。 url需要这两个参数。
url(r'^team/(<team_id>\w+)/player/(<player_id>\w+)', 'views.player'),
另外,正如BéresBotond所说,我也认为模式看起来不正确。正如他所说,将?P
添加到每个模式的开头,就在括号内。
答案 1 :(得分:1)
在您的网址中,您还需要告诉它该模式指向的视图。此外,模式中的参数未正确定义。应该是这样的:
url(r'^team/(?P<team_id>\w+)/player/(?P<player_id>\w+)/$', 'myproject.myapp.views.player'),
有关详细信息,请查看urlconf文档:https://docs.djangoproject.com/en/1.3/topics/http/urls/