0

我想运行一个跨越多个关系的更新查询。django可以做到这一点吗?这是我尝试过的:

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 回答