我有一个HTML表单发布到名为add_product的路由,该路由又会重定向到view_product:
<form action="/add_product" method="post">
....
</form>
@view_config(route_name='add_product', permission='create')
def add_product(request):
print "TESTING" # <--------------------- nothing gets printed in the console!
name = request.params['product_name']
if not Product.get_by_name(name):
Product.add_product(name, content='')
return HTTPFound(location=request.route_url('view_product', pagename=name))
@view_config(route_name='view_product', renderer='templates/product.jinja2', permission='view')
def view_product(request):
pagename = request.matchdict['pagename']
product = DBSession.query(Product).filter_by(name=pagename).first()
if product is None:
return HTTPNotFound('No such page')
return dict(product=product)
当我尝试提交表单时,我收到错误消息,指出网页有重定向循环。我通过输入print语句尝试调试,但没有任何内容打印到控制台。
我还使用Chrome开发工具检查了网络面板 - 我在POST
看到一个/add_product
请求,然后是GET
次请求/add_product
在重定向循环错误出现之前。
我完全不知道出了什么问题。有没有人有线索?
编辑:我的路线配置。
config.add_static_view('static', 'static', cache_max_age=3600)
config.add_route('index', '/')
config.add_route('register', '/register')
config.add_route('login', '/login')
config.add_route('logout', '/logout')
config.add_route('view_cosmeceutical', '/cosmeceuticals/{pagename}')
config.add_route('add_cosmeceutical', '/add_cosmeceutical')
config.add_route('update_cosmeceutical', '/update_cosmeceutical/{pagename}')
config.add_route('view_product', '/products/{pagename}')
config.add_route('add_product', '/add_product')
config.add_route('update_product', '/update_product/{pagename}')
config.add_route('add_reference', '/add_reference')
config.scan()