2016-01-16 2 views
0

У меня есть некоторые параметры, которые вычисляются в представлении Django, которые необходимо передать URL. Как я смогу это сделать.Как передать вычисляемый параметр на url в Django

Текущий шаблон URL:

url(r'^hotels/(?P<country>[A-Za-z0-9-]+)/(?P<region>[A-Za-z0-9-]+)', hotel.views.hotels, name='hotels') 

Ссылка из моего шаблона:

<a href="{% url 'hotels' %}?region_id={{ region.id }}">{{ region.name }}</a> 

И мое мнение: я получаю region_id из запроса.

def hotels(request): 
    region_id = request.GET.get('region_id') 
    region = Region.objects.get(id=region_id) 
    region_name = region.name 
    country_name= region.country.name 

    context = { 
     'region_id': region_id, 
     'region': region_name, 
     'country': country_name, 
    } 
    return render(request, 'hotel/hotels.html', context) 

Я получаю region_id из шаблона, после того, что я использую запрос, чтобы получить регион, название региона и соответствующей страны.
Имя региона и имя страны должны использоваться в URL-адресе.

До сих пор это не работает.

Я надеюсь, что кто-то может помочь мне сделать это.

,

+0

Этот шаблон URL не соответствует тому, что вы передаете вообще. –

ответ

2

Ваш hotels URL ожидают два аргумента: country и region вам нужно передать их функции url:

<a href="{% url 'hotels' region.country.name region.id %}">{{ region.name }}</a> 

Далее в окне, возьмите их из входящего kwargs.

def hotels(request, country, region): 
    pass 
Смежные вопросы