使用变量进行Django对象过滤

时间:2014-05-14 16:41:40

标签: python django

我的模型看起来像这样:

class Beacon(models.Model):
    name = models.CharField()
    bid =  models.CharField()
    campaigns = models.ManyToMany(Campaign)
    location = models.ForeignKey(Location)

在我的api视图中,我试图找到一个特定的Beacon给出一个出价(这是beacon id btw)。所以我有一些看起来像这样的东西:

def SawBeacon(request, beacon_id):

    if request.method == 'GET':
        Beacon  = Beacon.objects.filter(bid__beacon_id=%s) % beacon_id

这不起作用..但我想你会明白我想做什么。我想获取传入的beacon_id参数并过滤到与此ID匹配的特定信标。

  1. 我该怎么做?
  2. 当我过滤掉一个对象时,我是自己获取对象还是获取值?

1 个答案:

答案 0 :(得分:2)

如果您正在获取一个实例,则需要使用get而不是filter。尝试:

Beacon.objects.get(bid=beacon_id)

使用过滤器时,您将返回一个查询集。