简体   繁体   English

Peewee model_form不更新

[英]Peewee model_form not updating

I am using Peewee's model_form to update an instance of an entry in my database. 我正在使用Peewee的model_form更新数据库中条目的实例。 Below is my code for the form, template and app. 以下是我的表单,模板和应用程序代码。 For some reason, I don't think I am getting a POST when I submit the form, but I am writing my code the same way I did in the past without any problems. 出于某种原因,提交表单时我没有得到POST ,但是我以与过去相同的方式编写代码,没有任何问题。 Any help would be appreciated! 任何帮助,将不胜感激!

Brian 布赖恩

forms.py

from flask_wtf import FlaskForm
from wtforms import StringField, TextAreaField, DateField
from wtforms.validators import DataRequired
from wtfpeewee.orm import model_form

import models


class EntryForm(FlaskForm):
    """Form for adding a journal entry to the database."""
    title = StringField(validators=[DataRequired()])
    date = DateField(validators=[DataRequired()])
    time_spent = StringField(validators=[DataRequired()])
    learning = TextAreaField(validators=[DataRequired()])
    resources = TextAreaField(validators=[DataRequired()])


EditEntryForm = model_form(models.Entry)

edit.html

{% extends 'layout.html' %}
{% from 'macros.html' import render_field, field_error %}

{% block content %}
<div class="edit-entry">
    <h2>Edit Entry</h2>
    <form>
        {# Form to edit journal entry #}
    <form action="" method="POST" class="form">
        {# {{ form.hidden_tag() }} #}
        <label for="title">Title</label>
        {{ render_field(form.title) }}
        <label for="date">Date</label>
        {{ field_error(form.date) }}
        <input id="date" type="date" name="date" value="{{ entry.date.strftime('%Y-%m-%d') }}"><br>
        <label for="time-spent">Time Spent</label>
        {{ render_field(form.time_spent) }}
        <label for="what-i-learned">What I Learned</label>
        {{ render_field(form.learning) }}
        <label for="resources-to-remember">Resources to Remember</label>
        {{ render_field(form.resources) }}

        <input type="submit" value="Update Entry" class="button">
        <a href="{{ url_for('details', entry_id=entry.id) }}" class="button button-secondary">Cancel</a>
    </form>
</div>
{% endblock %}

app.py

@app.route("/edit/<int:entry_id>", methods=['POST', 'GET'])
def edit_entry(entry_id):
    """
    Allows user to edit a journal entry with the following fields: Title, Date,
    Time Spent, What You Learned, Resources to Remember.
    """
    try:
        entry = models.Entry.select().where(models.Entry.id==entry_id).get()
    except models.Entry.DoesNotExist:
        abort(404)
    else:
        if request.method == 'POST':
            form = forms.EditEntryForm(request.form, obj=entry)
            if form.validate():
                form.populate_obj(entry)
                entry.save()
                flash("Journal entry has been updated!", "success")
                return redirect(url_for('details', entry_id=entry.id))
        else:
            form = forms.EditEntryForm(obj=entry)

    return render_template("edit.html", form=form, entry=entry)

It looks like you forgot to add an action to the form: 您好像忘记了向表单添加操作:

<form action="" method="POST" class="form">

try: 尝试:

<form action="{{ url_for('edit_entry') }}" method="POST" class="form">

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 麻烦在mongoengine上渲染listfield model_form - Trouble rendering listfield model_form on mongoengine Flask-WTF model_form,Sqlalchemy和外键 - Flask-WTF model_form, Sqlalchemy, and foreign keys 如何自定义WTForm model_form字段映射? - How-to customize WTForm model_form field mapping? 烧瓶:model_form:AttributeError:类型对象“ Form”没有属性“ query” - Flask: model_form: AttributeError: type object 'Form' has no attribute 'query' flask-mongoengine model_form 缺少提交字段 - 我如何 append 一个到表单? - flask-mongoengine model_form is missing a submit field - how do I append one to the form? 使用 WTForms model_form() 引发 UserForm 没有属性“hidden_​​tag” - Using WTForms model_form() raises UserForm has no attribute 'hidden_tag' 如何将实体从App Engine数据存储区加载到WTForms model_form中? - How do I load an entity from the App Engine datastore into my WTForms model_form? 创建model_form会引发“ SQLAlchemy”对象没有属性“ query”错误 - Creating model_form raises 'SQLAlchemy' object has no attribute 'query' error 具有ListProperty(db.Key)的字段正在跳过使用wtforms.ext.appengine.db import model_form创建的表单? - Field with ListProperty(db.Key) is skipping in form created using wtforms.ext.appengine.db import model_form? Peewee 模型到 JSON - Peewee model to JSON
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM