0

複数の関係にまたがる更新クエリを実行したいと考えています。これはジャンゴで可能ですか?これは私が試したことです:

from django.db.models import F

Transaction.objects.filter(pk__lt=10).update(
    page__total_earned=F('page__total_earned')+5,
    page__profile__balance=F('page__profile__balance')+5
)

あなたが疑問に思っている場合に備えて、ここに私のモデルを垣間見ることができます:

class Transaction(models.Model):
    page = models.ForeignKey(Page, related_name='transactions', null=True, blank=True)

class Page(models.Model):
    profile = models.ForeignKey('Profile', related_name='pages', blank=True, null=True)
    total_earned = models.IntegerField(default=0)

class Profile(models.Model):
    balance = models.IntegerField(default=0, db_index=True)
4

1 に答える 1

0

Djangoドキュメントから。

Entry.objects.update(blog__name='foo') # Won't work!

update() メソッドは即座に適用され、更新される QuerySet に対する唯一の制限は、関連するモデルではなく、モデルのメイン テーブルの列のみを更新できることです。

ですから、答えはそうではありません。そのようにすることはできません。

于 2015-02-26T01:23:05.713 に答える