Имам приложение 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 също не се предават.
Едно нещо, което забелязах е, че изглежда, че изгледът се зарежда два пъти, но не знам как да потвърдя това. Мисля, че страницата се зарежда два пъти, защото виждам две извиквания към базата данни след пренасочването.
какво ми липсва Благодаря.
print('stuff')
и в двете функции за преглед. - person Antoine Leclair   schedule 28.11.2013