小编bvk*_*bvk的帖子

如何在django中避免n + 1选择?

我有一个非常简单的数据模型,视频和评论之间有一对多的关系

class Video(models.Model):
    url = models.URLField(unique=True)
    .....

class Comment(models.Model):
    title = models.CharField(max_length=128)
    video = models.ForeignKey('Video')
        .....
Run Code Online (Sandbox Code Playgroud)

我想查询视频并抓取整个对象图(包含所有评论的视频).看看sql,我看到它有两个选择,一个用于视频,一个用于注释.我该如何避免?我想做一个加入并立刻抓住所有东西.

用django可以做到这一点吗?

django orm join

10
推荐指数
2
解决办法
3574
查看次数

尝试使用django从Postgres DB中依次获取下一个值

我在数据库中定义了一个序列,希望在Django应用程序中使用它。我假设我可以使用django文档中指定的原始sql方法:http : //docs.djangoproject.com/en/1.1/topics/db/sql/。我的计划是执行以下SQL语句:

select nextval('winner')
Run Code Online (Sandbox Code Playgroud)

优胜者是我要从中获得下一个价值的顺序。这是我的代码:

from django.db import connection, transaction

.....

cursor = connection.cursor()

result = cursor.execute("select nextval('winner')")
Run Code Online (Sandbox Code Playgroud)

结果始终是一个NoneType对象。这似乎很简单明了,但我无法完成这项工作。我已经在交互式控制台中尝试了相同的结果。如果我查看connection.queries对象,则会看到以下内容:

{'time': '0.000', 'sql': "select nextval('winner')"}
Run Code Online (Sandbox Code Playgroud)

生成的sql有效。有任何想法吗?

我正在使用:

  • Django 1.1
  • Python 2.6
  • Postgres 8.3
  • Psycopg2
  • Mac OSX

sql django postgresql

7
推荐指数
2
解决办法
5700
查看次数

标签 统计

django ×2

join ×1

orm ×1

postgresql ×1

sql ×1