这是我第一个使用flask / flask-admin的项目。我们有一个使用flask创建的API,现在正在使用它的管理界面。其中一个要求是在TableA中创建记录时,需要在TableB中创建许多相关记录,其中包括新TableA条目的ROW_ID。
我已经创建了一个表格,用于将数据输入到TableA(工作正常),但不知道如何自动向TableB添加数据。数据提交到表后,是否返回新的(TableA)ROW_ID?有更好的方法吗?
有什么想法吗?
答案 0 :(得分:1)
文档没有很好的示例,但您可以覆盖模型的所有CRUD操作,包括创建。您可以自己创建和保存模型,您可以使用主键,并可以进行任何其他查询并创建您需要的任何其他模型。
我从代码中拼凑出来,所以希望它足够完整。如果其中任何一个令人困惑,或者它没有回答您的问题,请告诉我。
http://flask-admin.readthedocs.org/en/latest/quickstart/#model-views
from your_models import Employee, Manatee
from flask.ext.admin import Admin
from flask.ext.admin.contrib.sqla import ModelView
class EmployeeAdminView(ModelView):
# this is called when a model is created
def create_model(self, form):
person = Employee() # create new Employee
form.populate_obj(person) # use WTForms to populate the model
# create a new manatee for this new employee
# everybody needs a manatee for business purposes
# this assumes there's a sqlalchemy relationship() between the two models
manatee = Manatee()
manatee.name = "Janet"
person.manatee = manatee
self.session.add(person)
self.session.commit()
# at this point person.id should be available, so you can use that here
# to make any other queries you need to
return True
admin = Admin(app)
admin.add_view(EmployeeAdminView(Employee, db.session))