Django开发 - 从模型中访问结果

时间:2011-04-28 08:59:55

标签: php python django django-models django-views

一旦我加载了我的模型并在需要时对其进行过滤,我该如何访问结果?我可以在查询和过滤模型时找到大量示例,但是没有关于如何处理返回的对象的信息?

我的模特看起来像这样......

class Ratecard(models.Model):
    region = models.CharField(max_length=32)
    reportSuite = models.CharField(max_length=32)
    RP_UniqueUsers = models.IntegerField()
    RP_PageImpressions = models.IntegerField()
def __str__(self):
    return self.region

我的简单索引视图就是这样......

def index(request):

    reportSuites = Ratecard.objects.all()

    return render_to_response('index.html', locals())

我想要做的是基于区域过滤然后访问其他字段中的值...这在PHP中非常简单,但我几乎不知道任何python / django所以任何帮助都会很棒。

是的,所以我需要做的是对返回的内容进行一些计算,所以我可以...... reportSuite = Ratecard.objects.get(region="Liverpool") answer = reportSuite.RP_UniqueUsers * 100

这是对的吗?

1 个答案:

答案 0 :(得分:1)

如果您希望使用实例,请执行以下操作:

reportSuite = Ratecard.objects.get(id=??)
reportSuite.region

reportSuite = Ratecard.objects.all()
for reportSuite in reportSuites:
    reportSuite.region

但是如果您希望直接在页面中使用实例,则必须在模板中执行此操作

return render_to_response('template_name', {'reports':reportSuites})

在模板中:

{%for report in reports%}
    {{report.region}}
{%endfor%}

有关render_to_rsponse的信息 有关Django Templates

的信息

更新:是的,你可以做到,但这类事情的最佳位置是你的观察功能......所以:

answer = reportSuite.RP_UniqueUsers * 100
return render_to_response('template_link', {'reports':reportSuites, 'ans':answer})

在您的tepmlate中,您可以使用

{{ans}}

显示您的结果......