Как создать собственный вид модели для загрузки изображения в flask -admin? - PullRequest
0 голосов
/ 11 февраля 2020

Вопрос короткий и может быть простым для вас, у меня есть небольшой проект для показа изображений в моем приложении flask, экспортирующий этот модуль, с именем flask_appbuilder.models.mixins.ImageColumn и при установке в столбец photo = db.Column(ImageColumn(thumbnail_size = (30, 30, True), size=(100, 100, True))) в flask -admin не показывает это поле для загрузки моей картинки.

Весь код здесь:

models.py

from flask_sqlalchemy import SQLAlchemy
from sqlalchemy_utils import URLType
from datetime import datetime
from flask_appbuilder.models.mixins import ImageColumn
from flask_admin.contrib.sqla import ModelView
db = SQLAlchemy()

class Benefit(db.Model):
    __tablename__ = 'benefits'
    id = db.Column(db.Integer, primary_key = True)
    title = db.Column(db.String(50))
    description = db.Column(db.Text)
    url = db.Column(URLType)
    date_created = db.Column(db.DateTime, default = datetime.now())
#    photo = db.Column( ImageColumn(thumbnail_size = (30, 30, True), size=(100, 100, True) ) )

    def __repr__(self):
        return '<Benefit %s>' %(self.title)

class SetBenefitView(ModelView):
    form_columns = ['title', 'description', 'url', 'photo']

app.py

#! *-* coding: utf-8 *-*
from flask import Flask
from flask import render_template
from flask import request
from flask import abort
from models.models import Benefit
from models.models import db
from models.models import SetBenefitView
import calendar as cal
import datetime
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView


admin = Admin(app, name='intranet', template_mode='bootstrap3')

admin.add_view(ModelView(Benefit, db.session))
...