试图从django访问Postgres功能

时间:2014-08-14 20:29:35

标签: django postgresql django-models

我有一个django应用程序,我试图使用django访问一些Postgres函数。我正在关注this method来实现这一点(尽管该站点中使用的数据库是mysql)。

我能够成功创建函数,当我使用sql命令尝试它时,它工作正常。

这就是我的模型的样子:

class Results(models.Model):
    test_type_id = models.IntegerField(null=True, blank=True)
    test_id = models.CharField(max_length=12, null=True, blank=True)
    test_name = models.CharField(max_length=50, null=True, blank=True)
    YR = models.IntegerField(null=True, blank=True)
    @staticmethod

    def summaryrosterbycampus(testtypeid, testid):
        cur = connection.cursor()
        cur.callproc('summaryrosterbycampus',[testtypeid, testid])
        results = cur.fetchall()
        cur.close()
        return [Results(*row) for row in results]

我试图从shell访问它,如下所示:

>>> from reports.models import *
>>> data = Results.summaryrosterbycampus(request.GET[1,'201403MAME04'])
Traceback (most recent call last):
  File "<console>", line 1, in <module>
NameError: name 'request' is not defined

我哪里错了?

1 个答案:

答案 0 :(得分:1)

您正在尝试在shell(没有请求对象)的视图(传入请求对象)中执行要执行的操作。我你想要的东西:

exampleResult = Results.objects.all()[0] # or some other way to get a result to give you the test_type_id and test_id values to pass
data = Results.summaryrosterbycampus(exampleResult.test_type_id,exampleResult.test_id)