我似乎无法让此表单将数据发布到我的数据库。我正在使用peeweeorm在Python的Flask框架中工作。当我提交表单时,我看到一个POST事件执行(见下文),但没有任何内容写入数据库。你知道吗
[21/Nov/2015 04:21:47] "POST /create-event HTTP/1.1" 200 -
我知道数据库连接本身是好的,因为另一个写函数正在工作。下面是代码以及它在哪个文件中的指示。你知道吗
应用程序类型
@app.route('/create-event', methods=('GET', 'POST'))
@login_required
def create_event():
form = forms.EventForm()
if form.validate_on_submit():
models.Event.create(user=g.user.id,
name=form.name.data.strip(),
description=form.description.data.strip(),
date=form.date.data.strip()
)
flash("Event created!", "success")
return redirect(url_for('timeline'))
return render_template('userpages/event_create.html', form=form)
表单.py
class EventForm(Form):
name = StringField("Event Name", validators=[DataRequired()])
description = TextAreaField("Description", validators=[DataRequired()])
date = DateField("Date", validators=[DataRequired()])
型号.py
class Event(Model):
timestamp = DateTimeField(default=datetime.datetime.now)
user = ForeignKeyField(
rel_model=User,
related_name='events'
)
name = CharField()
description = TextField()
date = DateField()
class Meta:
database = DATABASE
order_by = ('-timestamp',)
事件_创建.html
{% extends "layout.html" %}
{% from 'macros.html' import render_field %}
{% block content %}
<h1>Create New Event</h1>
<form method="POST" action="" class="form">
{{ form.hidden_tag() }}
{% for field in form %}
{{ render_field(field) }}
{% endfor %}
<button type="submit" id="submit">Create</button>
</form>
{% endblock %}
有什么想法吗?你知道吗
回答我自己的问题的形式可能不好,但看起来主要的问题是我在创建
event
表之后编辑了模型,并且更改没有正确应用。需要删除并重新创建表。你知道吗另一个问题是不能在这个日期字段上调用
.strip()
。你知道吗相关问题 更多 >
编程相关推荐