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。
同样,您可以使用上述方法来控制更新和删除操作。
最后更新于