Пренасочване чрез HTTPНамерени параметри не се предават

Имам приложение Pyramid, използващо URL disptach. Имам маршрут „/delete“, който премахва запис от базата данни и пренасочва към изглед. Когато пренасочването се случи, искам изгледът да се презареди на същата страница. Използвам webhelpers.paginate за страниране. Проблемът е, че когато пренасочването се случи, параметрите не се предават.

Маршрутът за изтриване:

@view_config(route_name='delete')
def delete(request):
    # Get the current page, the page title, and the id of the record to delete
    current_page = int(request.params.get('page', 1))

    # Database transactions
    ...
    # Reload the view
    url = request.route_url(route_name='records', app_name='BLAH', userid='BLAH', page=current_page)
    return HTTPFound(location=url)

Изглед на записите:

@view_config(route_name='records', renderer='records.jinja2')
def records(request):
    # Get the current page
    current_page = int(request.params.get('page', 1))

Когато изгледът на записите е зареден, параметрите не се предават и стойността по подразбиране „1“ е зададена за текущата_страница. Стойностите на „BLAH“ за app_name и user_id също не се предават.

Едно нещо, което забелязах е, че изглежда, че изгледът се зарежда два пъти, но не знам как да потвърдя това. Мисля, че страницата се зарежда два пъти, защото виждам две извиквания към базата данни след пренасочването.

какво ми липсва Благодаря.


person ericso    schedule 27.11.2013    source източник
comment
Погледнете в инструментите за разработчици на вашия браузър, за да видите изпълняваните заявки. В Chrome можете да запазите регистрационния файл при навигация, ако това помага. Освен това можете да добавите print('stuff') и в двете функции за преглед.   -  person Antoine Leclair    schedule 28.11.2013


Отговори (1)


Какъв е url адресът, когато вашият print url в маршрут за изтриване и каква е дефиницията на маршрут records?
Ако искате GET Заявка, трябва да опитате аргумент на ключова дума _query

url = request.route_url(name='records', _query=(('page', current_page),))
person Paul Yin    schedule 28.11.2013
comment
Вижте също този отговор: stackoverflow .com/questions/11989317/ - person ericso; 03.12.2013