2013-07-12 14 views
5

मैं माइक्रोबब्लॉग लिखने के लिए फ्लास्क फ्रेमवर्क के साथ पायथन का उपयोग कर रहा हूं।पायथन/फ्लास्क फॉर्म त्रुटि - विशेषताइंटर: 'यूनिकोड' ऑब्जेक्ट में कोई विशेषता नहीं है '__call__'

File "/home/akoppad/flaskblog/app/templates/base.html", line 27, in top-level template code 
{% block content %}{% endblock %} 
File "/home/akoppad/flaskblog/app/templates/edit.html", line 13, in block "content" 
[Display the sourcecode for this frame] [Open an interactive python shell in this frame] 
{{form.nickname(size=60)}} 

यहां मेरा कोड है।

@app.route('/edit', methods=['GET','POST']) 
@login_required 
def edit(): 
    form=EditForm(g.user.nickname) 
    if form.validate_on_submit(): 
      g.user.nickname = form.nickname.data 
      g.user.about_me = form.about_me.data 
      db.session.add(g.user) 
      db.session.commit() 
      flash('Your changes have been saved.') 
      return redirect_url(url_for('edit')) 
    elif request.method !="POST": 
      form.nickname = g.user.nickname 
      form.about_me = g.user.about_me 
    else: 
      form.nickname.data = g.user.nickname 
      form.about_me.data = g.user.about_me 
    flash(form.nickname) 
    flash("inside edit") 
    return render_template('edit.html', form=form) 


<form action="" method="post" name="edit"> 
{{form.hidden_tag()}} 
<table> 
    <tr> 
     <td>Your nickname:</td> 
     <td> 
      {{form.nickname(size = 24)}} 
      {% for error in form.errors.nickname %} 
      <br><span style="color: red;">[{{error}}]</span> 
      {% endfor %} 
     </td> 
    </tr> 
    <tr> 
     <td>About yourself:</td> 
     <td>{{form.about_me(cols = 32, rows = 4)}}</td> 
    </tr> 
    <tr> 
     <td></td> 
     <td><input type="submit" value="Save Changes"></td> 
    </tr> 
</table> 
</form> 

मैंने विचारों के अंदर एक फ्लैश स्टेमेंट लगाया और यह सही मूल्य देता है। अगर मैं (size=60) हटा देता हूं और form.nickname प्रिंट करता हूं, तो यह सही ढंग से प्रिंट करता है। कोई बात नहीं। मेरे पास आकार = 60 होने पर त्रुटि फेंकता है। कृपया मुझे बताएं कि त्रुटि क्यों हो रही है।

जो और अधिक जानने में रुचि रखते हैं आप में से जो है, मैं इस ट्यूटोरियल निम्नलिखित हूँ के लिए, here

उत्तर

5

आप यूनिकोड स्ट्रिंग में आप की विशेषताओं फील्ड वर्ग बदल रहे हैं

elif request.method !="POST": 
    form.nickname = g.user.nickname 
    form.about_me = g.user.about_me 

होना चाहिए

elif request.method !="POST": 
    form.nickname.data = g.user.nickname 
    form.about_me.data = g.user.about_me 
0

यह आपको लगता है कि त्रुटि दे रही है क्योंकि nickname एक समारोह लेकिन एक स्ट्रिंग नहीं है। मैं केवल अनुमान लगा सकता हूं कि ट्यूटोरियल में कुछ त्रुटियां हैं।

ऐसा करें:

{{ form.nickname|truncate(60) }} 
संबंधित मुद्दे

 संबंधित मुद्दे