0
현재 로그인 한 사용자가 사용자 클래스의 몇 가지 (현재 두 가지) 속성을 조정할 수있는 설정 페이지를 설정하려고합니다. SQLAlchemy를 사용하여 데이터베이스 쿼리를 처리하고 있습니다. 사용자 클래스를 연결하기 전에 설정 페이지와 양식이 표시되고 작동하므로 Flask 코드 문제 일 것으로 생각됩니다. WTForms crash course documentation의 예제 코드를 따르려고했으나 여전히 오류가 발생했습니다. 어떤 도움이나지도라도 크게 감사 할 것입니다.WTForm을 통해 클래스 인스턴스를 편집하는 방법
플라스크 코드 :
class SettingsForm(Form):
topics = TextField('Topics')
emailFrequency= RadioField('Email Frequency', choices = [('Daily', u'Daily'), ('Weekly', u'Weekly'), ('Monthly', u'Monthly'), ('Never', u'Never')], default='Weekly')
submit = SubmitField("Save Changes")
@application.route('/settings', methods = ['GET', 'POST'])
@login_required
def settings(request):
user = current_user
form = SettingsForm(request.form)
if request.method == 'POST' and form.validate():
user.emailFrequency = form.emailFrequency.data
user.topics = form.topics.data
db.session.commit()
return render_template('settings.html', page_title = "Success", form=form, success=True)
elif request.method == 'GET':
return render_template('settings.html', page_title = 'Customize your settings using the form below', form = form)
HTML 다른 사람이 같은 문제가있는 경우이 도움이
{% extends "base-layout.html" %}
{% block content %}
{% if success %}
<h2> Settings updated! </h2>
{% else %}
<h2> Customize your settings</h2>
<form class="form" action="{{url_for('settings')}}" method="POST" role="form">
{{form.hidden_tag()}}
<div> {{form.topics.label}} </div>
<div> {{form.topics(placeholder="E.g. Gas, Oil, Renewables", class="form-control")}} </div>
<div> {{form.emailFrequency.label}} </div>
<div> {{form.emailFrequency}} </div>
<div> {{form.submit}} </div>
</form>
{% endif %}
{% endblock %}