1

私は2つのモデルを持っています

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()
    ...

User は db User にあり、Blog は db Blog_1、Blog_2...Blog8 にあるため、ForeignKey はありません。

ブログリスト ビューで、ユーザー名でブログを表示したい。1 つのクエリでどのように行うのですか? またはマルチクエリセットが必要ですか? Blog.objects.all()user_id を取得し、user_id ですべてのユーザー名を照会しますか?

また、ブログリスト ビューには、次のユーザーからのブログが表示されます。ブログ ID リストはありますが、マルチ データベースからのブログなので、次のようになります。

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

1 つのリストにどのように結合しますか? コードが非効率的だと思います。何か提案はありますか?

4

1 に答える 1

2

user_id を整数として取得し、2 番目のステップでブログ データベースにクエリを実行する必要があります。

Django はデータベース間の関係をサポートしていません。こちらのドキュメントをご覧ください

于 2012-11-25T07:54:35.150 に答える