如何更新多个字段,包括django模型实例的相关字段?

2024-05-06

我想知道,更新多个字段(包括 django 中模型实例的相关字段)的标准方法是什么? ...

Class User(models.Model):
    id = models.CharField()
    name = models.CharField()
    dob = models.CharField()

Class Appointment(models.Model):
    user = models.ForeignKey(User)
    app_id = models.CharField()
    time = models.DateTimeField()
    status = models.CharField()

要更新约会模型中的多个字段,我可以这样做

dict ={
"app_id": "123",
"time": "2012-01-01 10:30",
"status": "Open"
}
Appointment.objects.filter(app_id=123).update(dict)

有没有办法更新相关模型? 如何更新预约模型和用户模型?
Case:

dict ={
"name": "foo",
"app_id": "123",
"time": "2012-01-01 10:30",
"status": "Open"
}

为了清楚起见 - 这不是“继承”的意思。约会与用户相关,但不继承自用户。

查询集上的更新方法无法在一次调用中完成此操作。文档说:

对更新的 QuerySet 的唯一限制是它只能更新模型主表中的列,而不能更新相关模型中的列。

https://docs.djangoproject.com/en/dev/ref/models/querysets/#update https://docs.djangoproject.com/en/dev/ref/models/querysets/#update

如果您只有 app_id 而没有其他内容,则可以编写第二个更新调用:

User.objects.filter(appointment__app_id=123).update(name='foo')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更新多个字段,包括django模型实例的相关字段? 的相关文章

随机推荐