Python 数据库上的Django guardian具有共享(非独占)访问权限

Python 数据库上的Django guardian具有共享(非独占)访问权限,python,django,database-permissions,django-permissions,Python,Django,Database Permissions,Django Permissions,我正在开发一个Django应用程序,它是一些Oracle数据库的Web前端,另一个本地数据库保存应用程序的数据,如Guardian权限。问题是它可以从我无法控制的不同地方修改 假设我们有3个模型:User、Thesis和UserThesis 用户论文-指定论文和用户之间关系的表格(用户是论文的共同作者) 情景: 用户被其他应用程序删除用户论文表中的条目,从而被删除为论文的作者 用户尝试使用我们的Django应用程序修改论文。他成功了,因为《卫报》和Django不知道用户论文的变化 我想到了一些解

我正在开发一个Django应用程序,它是一些Oracle数据库的Web前端,另一个本地数据库保存应用程序的数据,如Guardian权限。问题是它可以从我无法控制的不同地方修改

假设我们有3个模型:
User
Thesis
UserThesis

用户论文
-指定
论文
用户
之间关系的表格(
用户
论文
的共同作者)

情景:

  • 用户
    被其他应用程序删除
    用户论文
    表中的条目,从而被删除为
    论文
    的作者

  • 用户
    尝试使用我们的Django应用程序修改
    论文
    。他成功了,因为《卫报》和Django不知道用户论文的变化

  • 我想到了一些解决办法:

  • 进行一些cron作业,通过检查条目的修改日期来查找
    userdesh
    中的更改。易于检查添加,删除需要再次查看所有关系

  • 修改Oracle DB模式以添加Guardian DB表,并在
    UserThesis
    表上创建触发器。我不想这样做,因为Oracle DB在许多不同的应用程序之间共享

  • 手动检查视图和模板中的关系(Oracle负载更重)


  • 哪一个是最好的?还有其他想法吗?

    我决定手动检查权限,尽可能地缓存它。我最终使用了get_perms_from_cache(self,user)模型方法,这对我帮助很大