Python Flask Admin:一次在两个表中插入数据
这是我使用flask/flask admin的第一个项目。我们有一个API,使用flask创建,现在正在开发它的管理接口。其中一个要求是在TableA中创建记录时,需要在TableB中创建大量相关记录,其中包括新TableA条目的行ID 我已经创建了一个表单,用于在TableA中输入数据(这很好),但不知道如何将数据自动添加到TableB中。数据提交到表后是否返回新的(TableA)行_ID?有更好的方法吗Python Flask Admin:一次在两个表中插入数据,python,flask,flask-sqlalchemy,flask-admin,Python,Flask,Flask Sqlalchemy,Flask Admin,这是我使用flask/flask admin的第一个项目。我们有一个API,使用flask创建,现在正在开发它的管理接口。其中一个要求是在TableA中创建记录时,需要在TableB中创建大量相关记录,其中包括新TableA条目的行ID 我已经创建了一个表单,用于在TableA中输入数据(这很好),但不知道如何将数据自动添加到TableB中。数据提交到表后是否返回新的(TableA)行_ID?有更好的方法吗 有什么想法吗?文档中没有很好的例子,但是您可以覆盖模型的所有CRUD操作,包括创建。您可
有什么想法吗?文档中没有很好的例子,但是您可以覆盖模型的所有CRUD操作,包括创建。您可以自己创建和保存模型(在该模型上有主键),并可以进行任何其他查询和创建任何其他需要的模型 我是用我们的代码拼凑出来的,所以希望它足够完整。让我知道,如果有任何困惑,或它没有回答你的问题
谢谢Rachel,我真的找到了“在模型改变后(自我、形式、模型、被创建)”的方法,这更适合我们的需要,但由于理论是一样的,我接受这是正确的答案。太棒了,我很高兴你找到了你需要的。
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))