我正在 Flask 上创建一个简单的博客,并且正在尝试实施 Flask-Admin 来管理我的帖子。如果我去管理区域,我可以从数据库中看到我所有帖子的列表,但是当我尝试创建一个新帖子时,我得到了下一个错误:
Failed to create model. __init__() takes exactly 4 arguments (1 given)
这是我的帖子模型:
class Post(db.Model):
__tablename__ = 'news'
nid = db.Column(db.Integer, primary_key = True)
title = db.Column(db.String(100))
content = db.Column(db.Text)
created_at = db.Column(db.DateTime)
def __init__(self, title, content):
self.title = title.title()
self.content = content
self.created_at = datetime.datetime.now()
这是我将模型添加到 UI 的代码:
from flask import Flask, session
from models import db, Post
from flask.ext.admin import Admin
from flask.ext.admin.contrib.sqlamodel import ModelView
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:pass@localhost/appname'
db.init_app(app)
admin = Admin(app)
admin.add_view(ModelView(Post, db.session))
我可以通过管理面板编辑模型,但不能创建新模型。我知道我错过了一些非常愚蠢的东西,但我无法弄清楚它是什么。
编辑:如果我不在模型上实现init ,它会起作用。我怎样才能解决这个问题?