访问当前架构上下文

时间:2018-07-20 14:00:38

标签: python django django-models

比方说我们有这样的情况:

     google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawChart);

function drawChart() {
var data = google.visualization.arrayToDataTable([
  ['Task', 'Hours per Day', 'Sleep'],
  ['Work', 8, 8],
  ['Eat', 2, 8],
  ['TV', 4, 8],
  ['Gym', 2, 8],
]);



  var options = {
  title:'My Average Day',
  vAxis: {title: 'Tasks'},
  hAxis: {title: 'Hours per Day'},
  seriesType:'bars',
  series:{1:{type:'line'}}
  };

  var chart = new google.visualization.ComboChart(document.getElementById('chart1'));
  chart.draw(data, options);
}

问题是:可以在<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <div id="chart1" style="width: 900px; height: 500px;"></div>函数中访问当前的租户名称,而无需将其作为参数传递或存储为 global 变量

2 个答案:

答案 0 :(得分:1)

不可能,或者至少需要一些神奇的工程才能做到。

我假设您不想将其作为参数传递的唯一原因是因为其他事物也可能正在调用do_something,而不会将tenant作为参数传递。在这种情况下,请执行以下操作:

def do_something(context, tentant=None):
    if tenant:
        print (tenant)
    else:
        print ("do_something")

现在,您可以使用do_somethingdo_something(context, tenant='Bob')来呼叫do_something(context),两者都可以。

答案 1 :(得分:0)

我找到了解决方案,但我不知道它是否稳定。因此,可以通过dajngo.db连接访问当前的承租人名称(或 schema_name ),如下所示:

from django.db import connection

schema_name = connection.schema_name