Using a request object

如果您想在管理员界面中访问请求对象(例如执行创建、更新、删除等操作),可以重写特定的 ModelView 方法。

这些方法包括:

  • insert_model(request, data)

  • update_model(request, pk, data)

  • delete_model(request, pk)

一个常见的用例是访问 request.user 并在创建或更新模型时存储该信息:

示例模型:

class User(Base):
    __tablename__ = "user"

    id = mapped_column(Integer, primary_key=True)
    name = mapped_column(String)


class Post(Base):
    __tablename__ = "post"

    id = mapped_column(Integer, primary_key=True)
    text = mapped_column(String)
    author = relationship("User")
    author_id = mapped_column(Integer, ForeignKey("user.id"), index=True)

每当创建新的 Post 时,我们希望存储当前创建它的管理员用户。可以通过重写 insert_model 方法来实现:

在这里,我们将当前的 request.user.id 设置为 data 字典中的 author_id,该字典用于创建 Post

同样,您可以使用上述方法来控制更新和删除操作。

最后更新于