Miguel Grinberg による Flask Mega Tutorial に従っています。彼は、ユーザーのログイン/ログアウト、およびコンテンツ (ブログ投稿) の追加に重点的に取り組んでいますが、チュートリアルから単純な CRUD 操作を推測するのは困難です。既存のデータの編集ではなく、データの追加 (ユーザー ログイン、新しいブログ投稿) に重点が置かれているようです。
私は現在、提供されたIDに基づいてCompanyオブジェクトを返すと思われるメソッドを使用して、models.pyに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 instance as first argument (代わりに unicode インスタンスを取得しました)。私が定義したメソッドが、私が設計したものよりも多くの引数を期待する理由は明らかではありません。