В настоящее время я начинаю проект с Flask. В настоящее время я испытываю Flask-Admin.
Я пытаюсь установить двухуровневую связь. Для каждого «кандидата» мне нравится связывать язык и уровень (LanguageLevel) для этого языка.
Вот мои модели.py
from app import db
class Candidat(db.Model):
id = db.Column(db.Integer, primary_key=True)
firstname = db.Column(db.String(128))
lastname = db.Column(db.String(128))
birthdate = db.Column(db.DateTime)
languages = db.relationship("CandidatLanguage", backref="candidat")
def __repr__(self):
return '<Nom %r>' % self.lastname
class Language(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
def __repr__(self):
return '<Langues %r>' % self.name
class Languagelevel(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
def __repr__(self):
return '<Niveau : %r>' % self.name
class CandidatLanguage(db.Model):
id = db.Column(db.Integer, primary_key=True)
candidat_id = db.Column(db.Integer, db.ForeignKey('candidat.id'))
language_id = db.Column(db.Integer, db.ForeignKey('language.id'))
langguage_level_id = db.Column(db.Integer, db.ForeignKey('languagelevel.id'))
Вот мои взгляды.py
from models import Candidat, Languagelevel, Language, CandidatLanguage
from flask.ext.admin import Admin, BaseView, expose
class MyView(BaseView):
@expose('/')
def index(self):
return self.render('adm-index.html')
admin = Admin(app)
admin.add_view(MyView(name='Hello'))
from flask.ext.admin.contrib.sqla import ModelView
admin.add_view(ModelView(Candidat, db.session))
admin.add_view(ModelView(CandidatLanguage, db.session))
admin.add_view(ModelView(Language, db.session))
admin.add_view(ModelView(Languagelevel, db.session))
Я хотел бы иметь форму кандидата, которая выглядит так:
Имя : ____
Фамилия : _____
Язык :
Выпадающий список для языка:
- Language 1
- Язык 2
Выпадающий список для уровня языка:
- Level 1
- Уровень 2
Для одного «кандидата» один язык может быть связан только с одним уровнем языка.
Я пробовал column_auto_select_related
, column_display_all_relations
, и, конечно же, ни один из них не работает так, как я думал. Конечно это моя ошибка.
Если кто-то может показать мне правильный путь для достижения моей цели, это было бы очень полезно.
Заранее спасибо.
С уважением