gpt4 book ai didi

python - 无法在 Flask-admin 上创建模型

转载 作者:太空狗 更新时间:2023-10-29 17:26:39 24 4
gpt4 key购买 nike

我正在 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 它会起作用。我该如何解决这个问题?

最佳答案

查看 Flask-Admin 源代码中的相关部分 here .

创建模型时不传递任何参数:

    model = self.model()

所以你也应该支持一个不带参数的构造函数。例如,使用默认参数声明您的 __init__ 构造函数:

    def __init__(self, title = "", content = ""):
self.title = title.title()
self.content = content
self.created_at = datetime.datetime.now()

关于python - 无法在 Flask-admin 上创建模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17254840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com