AssertionError: произошло столкновение имени проекта - PullRequest
0 голосов
/ 01 мая 2018

enter image description here

Я пытаюсь расширить базовый проект колбы https://github.com/hack4impact/flask-base/tree/master/app. При этом используется шаблон фабрики приложений в app / init.py и blueprints.

Я изо всех сил пытаюсь заставить работать самые основные функции, поэтому сейчас я пытаюсь следовать https://flask -admin.readthedocs.io / en / v1.1.0 / _sources / quickstart.txt

В приложении / init.py у меня есть:

from flask_admin import Admin


....
adm = Admin(name='admin2')


def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    # not using sqlalchemy event system, hence disabling it

    config[config_name].init_app(app)
....
    RQ(app)
    adm.init_app(app)   
...

from .admin import admin as admin_blueprint
app.register_blueprint(admin_blueprint, url_prefix='/admin')

return app

шаблоны / админ / db.html:

<p>Hello world</p>

К просмотру администратора (https://github.com/hack4impact/flask-base/blob/master/app/admin/views.py) Я добавил:

from flask_admin import Admin, BaseView, expose
from flask_admin.contrib.sqla import ModelView
from app import adm, db

class MyView(ModelView):
    @expose('/')
    # @login_required
    def db(self):
        return self.render('admin/db.html')


adm.add_view(MyView(User, db.session))

Когда я открываю:

 127.0.0.1:5000/db

Я получаю:

AssertionError: A blueprint's name collision occurred between <flask.blueprints.Blueprint object at 0x000000000586C6D8> and <flask.blueprints.Blueprint object at 0x00000000055AFE80>.  Both share the same name "admin".  Blueprints that are created on the fly need unique names.

Что я делаю не так?

редактирование:

следуя вашему совету, я изменился на:

adm = Admin(name='admin2',endpoint='/db')

Однако, если я попытаюсь:

 127.0.0.1:5000/db/db

Я получаю 404. Я предполагаю, что вы меняете нормальный базовый маршрут администратора с «admin» на «db»

Что теперь?

1 Ответ

0 голосов
/ 11 мая 2018

Если мой ответ в Неправильная панель инструментов при добавлении flask-admin в проект решит вашу проблему, то я считаю, что было бы лучше закрыть этот вопрос.

Если нет, дайте мне знать

...