Я использую параметры URL на своем сайте в качестве идентификаторов пользовательских данных. Если пользователь нажимает одну конкретную ссылку на сайте, эти параметры будут иметь значение «none», и я пытаюсь использовать следующую функцию, чтобы затем отправить их обратно на ту же страницу с правильными параметрами:
<a href="{{ url_for('site', param1='none', param2='none', param3='none', param4='none') }}">Site</a>
@app.route('/my-site/<param1>/<param2>/<param3>/<param4>', methods=['GET', 'POST'])
def site():
if param1 == 'none':
linking_data = Posts.query.filter_by(user=current_user.email).first()
return render_template('site', param1=linking_data.param1,
param2=linking_data.param2,
param3=linking_data.param3,
param4=linking_data.param4)
Если параметры жестко запрограммированы, этот подход хорошо работает. Однако если я попытаюсь определить параметры, как указано выше, это приведет к следующей ошибке:
werkzeug.routing.BuildError: Could not build url for endpoint 'site' with values ['param3', 'param4'].
Did you forget to specify values ['param1', 'param2']?
Почему он считает, что я не указал первые два параметра?