私は2つのデータベースを持っています:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(ROOT_PATH, 'db', 'sqlite.db'),
},
'slave': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(ROOT_PATH, 'db', 'slave.db'),
}
}
ManyToMany フィールドを持つテーブルがあります。
from django.db import models
from django.contrib.auth.models import User
class Data(models.Model):
xml = models.TextField(max_length=90000)
users = models.ManyToManyField(User)
コードを実行すると:
for i in Data.objects.all():
i.save(using='slave')
「デフォルト」データベースからのすべてのエントリは、ManyToMany フィールド ユーザーなしで「スレーブ」に表示されます。ユーザーフィールドを「スレーブ」データベースに明示的にコピーするにはどうすればよいですか?
編集:
Rohan からのアドバイスを試してみます。
for i in Data.objects.all():
back_i = i
# back_i.users.all().count() = 1
i.save(using='slave')
# back_i.users.all().count() = 0
for u in back_i.users.all():
i.users.add(u)
解決策は近いと思いますが、ここではありません