4
我目前正在啓動一個燒瓶項目。我目前正在經歷Flask-Admin。燒瓶 - 燒瓶 - 管理員 - 一對多 - 級聯
我嘗試設置2級關係。對於每個「Candidat」,我喜歡將此語言的語言和級別(LanguageLevel)關聯起來。
這裏是我的models.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'))
這裏是我的views.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))
我想有一個Candidat形式至極看起來是這樣的:
姓:_ __ _
名字:_ __ _ _
語言:
下拉爲語言:
- 語言1
- 語言2 爲語言級
下拉:
- 級別1
- 級別2
對於一個 「Candidat」,一個語言只能與一個語言級相關聯。
我試過column_auto_select_related
,column_display_all_relations
,當然他們都沒有像我想的那樣工作。當然,這是我的錯誤。
如果有人能爲我展示實現我的目標的正確方法,那將非常有用。
在此先感謝。
問候