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

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模型的删除导致该模型的删除,该怎么办? 谢谢

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

  • 问题内容: 一般来说,我对Web应用程序和数据库内容还是陌生的,所以这可能是一个愚蠢的问题。我想制作一个模型(“ CategoryModel”),其字段指向模型的另一个实例(其父实例)的主要ID。 我该怎么做呢?谢谢! 问题答案: 您可以将模型的名称作为字符串传递给ForeignKey,它将做正确的事情。 所以: 或者您可以使用字符串“ self”

  • 我正在为Django管理员设置: model.py 在admin.py 对此,我得到了以下错误: (admin. E202)“磁盘。文件”没有“磁盘。设置”的外键 根据https://docs . django project . com/en/dev/ref/models/fields/# django . db . models . foreign key中的文档,它应该可以工作。 我做了一些

  • 问题内容: 我遇到一种情况,我想使用Meta选项来强制执行某条规则,这是中介模型: 这是UserProfile: 谢谢。 问题答案: 你不能 该子句直接转换为唯一索引。而且,您只能在单个表的列上设置这些值,而不能在多个表的组合上设置。 不过,您可以自己为其添加验证,只需覆盖该方法并将此验证添加到其中即可。 文件:http : //docs.djangoproject.com/en/dev/ref/