我正在为一个项目创建一个健身网站,我得到了这个错误:
werkzeug.routing.BuildError: Could not build url for endpoint 'memberships'. Did you mean 'membershipsub' instead?我最初创建了一个名为“会员制”的模板,并在获得此错误后将其重命名为“会员制子”(在它引用的所有文件中的任何地方),但仍然会得到此错误。
这是我构建模板的代码:
@app.route("/memberships", methods = ['GET', 'POST'])
def membershipsub():
form = MembershipsubForm()
plan1 = Membership_plan.query.filter_by(id=1).first()
plan2 = Membership_plan.query.filter_by(id=2).first()
plan3 = Membership_plan.query.filter_by(id=3).first()
plan4 = Membership_plan.query.filter_by(id=4).first()
plan5 = Membership_plan.query.filter_by(id=5).first()
plan6 = Membership_plan.query.filter_by(id=6).first()
plan7 = Membership_plan.query.filter_by(id=7).first()
plan8 = Membership_plan.query.filter_by(id=8).first()
plan9 = Membership_plan.query.filter_by(id=9).first()
if form.validate_on_submit():
age18 = ['18+ year', '18+ 6 month', '18+ month']
age15 = ['15-17 year', '15-17 6 month', '15-17 month']
age10 = ['10-14 year', '10-14 6 month', '10-14 month']
if not (current_user.is_authenticated):
flash('You need to have an account to subscribe to a membership', 'danger')
return redirect(url_for('register'))
elif (current_user.age >= 18) and (form.membershipsub.data not in age18):
flash('You are not in the required age category to subscribe to this membership or this membership option is not available', 'danger')
elif (14 < current_user.age < 18) and (form.membershipsub.data not in age15):
flash('You are not in the required age category to subscribe to this membership or this membership option is not available', 'danger')
elif (9 < current_user.age < 15 ) and (form.membershipsub.data not in age10):
flash('You are not in the required age category to subscribe to this membership or this membership option is not available', 'danger')
else:
current_user.membership_plan = form.membershipsub.data
current_user.membership_expiration_date = membership_expiration()
db.session.commit()
flash('You have now subscribed to this membership!', 'success')
return redirect(url_for('mymembership'))
return render_template('membershipsub.html', title='Memberships', form=form, plan1=plan1, plan2=plan2, plan3=plan3, plan4=plan4, plan5=plan5, plan6=plan6, plan7=plan7, plan8=plan8, plan9=plan9)此外,我没有使用蓝图,所以这不是问题。
发布于 2022-01-03 14:34:09
您的问题与模板名称无关。您需要的大部分信息都在错误消息中:
如果您没有如下代码段所示的代码,这将解释您所得到的错误:
@app.route('/memberships')
def memberships():
return render_template('template_name.html')您必须遍历代码,找到导致问题的对url_for('memberships')的调用,并将其更新为引用现有路由。
从您的问题中还不清楚是哪个调用url_for导致了这个问题。在您共享的代码片段中有两个对url_for的调用,但是它们引用了“注册”和“成员资格”,而您的错误消息引用了“成员身份”,所以代码段需要更新,或者对url_for的调用在模板代码中,您没有共享。
虽然您的问题不是完全重复的,但公认的答案here解释了您需要了解的关于url_for如何工作的大部分内容。(以及其他使用方法)
请随时更新您的问题与额外的信息,我可以随时更新或删除这个答案。
https://stackoverflow.com/questions/70566788
复制相似问题