Я создаю простой блог на Flask, и я пытаюсь реализовать Flask-Admin для управления своими сообщениями. Если я иду в админке я могу увидеть список всех мой пост из БД, но когда я пытаюсь создать новый, я получил следующую ошибку:Невозможно создать модели на 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()
И это мой код, чтобы добавить модель в пользовательском интерфейсе:
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:[email protected]/appname'
db.init_app(app)
admin = Admin(app)
admin.add_view(ModelView(Post, db.session))
I DO можно редактировать модели через панель администратора, но не создавать новые. Я знаю, что мне не хватает чего-то действительно глупого, но я не могу понять, что это такое.
Редактировать: он работает, если я не реализую init по модели. Как я могу это исправить?
Колба-Admin может» t создать модель, если у нее есть конструктор с параметрами, отличными от параметров по умолчанию - он не знает, что с ним делать. В этом случае не стесняйтесь переопределять метод create_model (https://github.com/mrjoes/flask-admin/blob/master/flask_admin/contrib/sqlamodel/view.py#L755) и реализовать свою собственную логику создания модели. – Joes