当前位置: 首页 > 面试题库 >

Django反向查找外键

莫兴言
2023-03-14
问题内容

我有一个场地,这个场地上发生了很多事件。我的模型如下所示:

class Event(models.Model):
    title = models.CharField(max_length=200)
    date_published = models.DateTimeField('published date',default=datetime.now, blank=True)
    date_start = models.DateTimeField('start date')
    date_end = models.DateTimeField('end date')
    def __unicode__(self):
        return self.title
    description = models.TextField()
    price = models.IntegerField(null=True, blank=True)
    venue = models.ForeignKey(Venue)

class Venue(models.Model):
    title = models.CharField(max_length=200)
    date_published = models.DateTimeField('published date',default=datetime.now, blank=True)
    venue_latitude = models.CharField(max_length=200)
    venue_longitude = models.CharField(max_length=200)
    venue_address = models.CharField(max_length=200)
    venue_city = models.CharField(max_length=200)
    venue_state = models.CharField(max_length=200)
    venue_country = models.CharField(max_length=200)
    description = models.TextField()
    def __unicode__(self):
        return u'%s' % (self.title)

我想显示在某个场所发生的所有事件。我怎样才能做到这一点?我当前的视图如下所示:

def detail(request, venue_id):
    venue = get_object_or_404(Venue, pk=venue_id)
    return render(request, 'venue-detail.html', {'venue': venue})

问题答案:

您可以使用events = venue.event_set另一种方式。

请注意,venue.event_set是经理的对象,像Event.objects,这样你就可以打电话.all.filter.exclude和类似它来得到一个查询集。

请参阅Django文档



 类似资料:
  • 问题内容: 我有一个场地,这个场地上发生了很多事件。我的模型如下所示: 我想显示在某个场所发生的所有事件。我怎样才能做到这一点?我当前的视图如下所示: 问题答案: 你可以使用另一种方式。 请注意,是经理的对象,像,这样你就可以打电话和类似它来得到一个查询集。

  • Django演示了如何设置或覆盖在文档中使用外键的级联删除。 但是如果我们想让这种效果反过来呢?如果我们希望fk模型的删除导致该模型的删除,该怎么办? 谢谢

  • 假设我有一个枚举: 如果我有一个数字,我可以这样得到枚举键: 然而,这给了我一个字符串。我怎样才能得到一个Color类型的变量呢?即:

  • 问题内容: 我有以下Django模型: 我想知道是否有可能(无需直接编写SQL)生成一个查询集,其中包含所有Makes和每个人的相关。 问题答案: Django不支持反向外键查找的方法,因此,最好的方法是在不离开Python的情况下进行两个数据库查询。第一个是获取包含的所有内容,第二个是获取所有的内容。然后,你必须遍历并按需要排列数据。

  • 问题内容: 我目前正在建立一个Web应用程序,并且想使用Redis来存储会话。登录时,会话将使用相应的用户ID插入到Redis中,并且到期时间设置为15分钟。我现在想对会话实施反向查找(获取具有特定用户ID的会话)。这里的问题是,由于我无法搜索Redis键空间,因此该如何实现。一种方法是为每个userId设置一个redis,其中包含所有会话ID。但是由于Redis不允许集合中的某个项目过期,并且会

  • 问题内容: 我已经在django 1.4中从主干尝试过prefetch_related(),但无法使其预取反向查找。 我的简化模型(每本书有很多价格): 我视图的查询: 然后,我得到了AttributeError消息: 如何使其运作?谢谢。 问题答案: 定义一个相关名称: 然后使用它: