私は、マイクロブログを書くためにFlaskフレームワークでPythonを使用しています。Python/Flaskフォームエラー - AttributeError: 'unicode'オブジェクトに '__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のときにスローされます。なぜエラーが起こっているのか教えてください。より多くを知ることに興味がある人のため
、私はnickname
は、関数が、文字列ではありませんので、それはあなたにそのエラーを与えているこのチュートリアル、here