我正在关注Miguel Grinberg编写的Flask Mega教程。他在专注于登录/注销用户以及处理添加内容(博客帖子)方面做得非常出色,但是从本教程中推断出简单的CRUD操作是一项挑战。重点似乎是添加数据(用户登录名,新博客帖子),而不是编辑现有数据。
我目前在models.py中有一个Company模型,我认为该方法基于提供的ID返回Company对象:
class Company(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(120), index = True)
def load_company_by_id(id):
return Company.query.get(int(id))
def __repr__(self):
return '<Company %r>' % (self.name)
我认为,我有:
from flask import render_template, flash, redirect, request
from app import app
from forms import CompanyForm
from models import Company
...
...
@app.route('/company/edit/<id>', methods=['GET','POST'])
def company_edit(id):
company = Company.load_company_by_id(id)
form = CompanyForm(obj=company)
return render_template('company_form.html', form = form)
我收到一个错误:TypeError:必须以Company实例作为第一个参数来调用未绑定方法load_company_by_id()(取而代之的是unicode实例)。我不清楚为什么我定义的方法会期望比我设计的期望更多的参数。
哈士奇WWW
相关分类