Как я могу получить доступ к дочернему объекту, используя django.views - PullRequest
1 голос
/ 14 марта 2012

У меня есть две модели: команда, игрок. У игрока есть внешний ключ к командам.

Теперь я хочу иметь представление и определил мой 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)

помощь очень ценится.

// мышь

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Проблема в вашем утверждении urls.py. Вам нужно добавить представление для вызова, когда этот URL запрашивается. URL требует этих двух аргументов.

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

Кроме того, как заметил Берес Ботонд, я также подумал, что шаблоны выглядят неверно. Как он сказал, добавьте ?P в начало каждого шаблона, прямо в скобках.

1 голос
/ 14 марта 2012

В вашем URL Conf вы также должны указать, на какой вид указывает этот шаблон. Кроме того, параметры в вашем шаблоне определены неправильно. Должно быть что-то вроде этого:

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/

...