2017-08-20 41 views
0

我做的燒瓶中的應用程序,當我試圖把一個鏈接,將用戶重定向到他的個人資料頁面調用瓶werkzeug.routing.BuildError

BuildError: Could not build url for endpoint 'profile'. Did you forget to specify values ['business_name']?

當我嘗試登錄本user.My應用的工作原理精前幾天與此相同的代碼,我不什麼發生,我已經嘗試了所有可能的手段來得到這個權利,但沒有辦法

@app.route('/profile/<business_name>') 
@login_required 
def profile(business_name): 
    user = User.query.filter_by(business_name=business_name).first() 
    if user == None: 
     flash('This Profile does not exist {}'.format(business_name)) 
     return redirect(url_for('login')) 

    return render_template('profile.html',user=user) 

(main.html中)

<ul class="nav navbar-nav"> 
    <li><a href="{{ url_for('home_page') }}" class="active">Home</a></li> 
    {% if g.user.is_authenticated %} 
    <li><a href="{{ url_for('profile', business_name=g.user.business_name) }}">Your Profile</a></li> 
    <li><a href="{{url_for('logout')}}">Logout</a></li> 
+1

錯誤似乎表明'business_name'沒有被定義,並且可能以'null'形式出現。你確定你的用戶已經登錄(並且不是匿名的),並且'business_name'是一個對象嗎? – Carlos

+0

可能會有所幫助:https://stackoverflow.com/questions/30501522/werkzeug-routing-builderror-with-flask-python?rq=1 –

回答

0

問題是你沒有定義路線的視圖功能,採取以下形式:

/資料/ BUSINESS_NAME

因此,你應該送BUSINESS_NAME的網址,但您要發送函數的自變量。您應該執行以下操作:

<a href="/profile/{{business_name=g.user.business_name }}">