Django多表/数据库查询集

时间:2012-11-25 07:30:26

标签: django django-queryset

我有两个模型

class User(models.Model)
    id = models.IntegerField(primary_key=True)
    username = models.CharField(max_length=20, unique=True)

class Blog(models.Model)
    id = models.BigIntegerField(primary_key=True)
    user_id = models.IntegerField()
    ...

因为db User中的User,db Blog_1,Blog_2 ... Blog8中的Blog,所以没有ForeignKey

在博客列表视图中,我想显示带有用户名的博客。 如何处理一个查询?或者必须有多个查询集? Blog.objects.all()获取user_id,并按user_id查询每个用户名?

博客视图显示来自用户的博客,我有一个博客列表,但来自多个数据库的博客,所以:

for id in blogid_list
    Blog.objects.get(pk=id).using('Blog_%d' % (id % 8))

如何在一个列表中合并? 我认为代码效率低,有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您需要将user_id作为整数获取,然后在第二步中查询您的博客数据库。

Django不支持跨数据库关系。请参阅文档here