我想将ORM控件公开给我的用户。我不是说我希望他们能够将部分代码添加到代码中,我的意思是我实际上允许他们编写django代码。我只需要允许特定的模型,并且只允许获取数据(不添加或更改任何内容)。这将会像控制台一样,每一行都会被执行(有点像ipython笔记本),并且返回的数据(如果它是一个QuerySet对象)将被显示在某种表格中。允许管理员通过视图控制Django ORM
此功能只适用于我的超级用户管理员,因此不会成为安全问题。最好的办法是什么(如果可能的话)?
更新
也许我应该给一些背景这里使用目的。请参阅我已经构建了一个收集和保存统计信息的应用程序。我的用户有很多我为他们构建的过滤器,但他们不断要求越来越多的灵活性,有时候他们需要过滤一些非常具体的东西,而且这只是一次性的东西,所以我不能一直添加越来越多的特征。
现在我的超级用户知道一个小蟒蛇,并且我明白了,也许我可以给他们某种方式来自己过滤。这个想法是他们将能够保存查询并命名它们,然后将这些自定义过滤器添加到主站点上的列表中。
它的工作方式是获取包含所有对象的QuerySet对象,它们可以使用预定义命令列表进行过滤。运行该命令后,服务器将对其进行评估,查找错误或禁止的代码,然后才会运行该代码。但我猜我不能只在生产服务器上使用eval()
,现在可以吗?那么还有其他一些方法吗?
没有好的方法来做到这一点。 – ThiefMaster
也许Django管理第二个数据库。 –