我正在关注 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: unbound method load_company_by_id() must be called with Company 实例作为第一个参数(取而代之的是 unicode 实例)。我不清楚为什么我定义的方法会期望比我设计的方法期望更多的参数。