2

这是我使用 flask/flask-admin 的第一个项目。我们有一个使用烧瓶创建的 API,现在正在处理它的管理界面。其中一个要求是在 TableA 中创建记录时,需要在 TableB 中创建许多相关记录,其中包括新 TableA 条目的 ROW_ID。

我已经创建了一个表格,用于将数据输入到 TableA(工作正常),但不知道如何自动将数据添加到 TableB。数据提交到表后是否返回新的(TableA)ROW_ID?有一个更好的方法吗?

有什么想法吗?

4

1 回答 1

2

文档没有很好的示例,但您可以覆盖模型的所有 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)) 
于 2014-08-07T18:06:40.433 回答