同时更新实例成员的多个字段

时间:2018-05-10 05:33:40

标签: django django-models

假设我有一个用户模型和这个模型

   class modelEmployer(models.Model):
    user                = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
    employer_image      = models.ImageField(upload_to='images/', default='')

现在假设我有一个modelEmployer的实例,我想更新其中的用户对象的内容。我知道我可以做到这一点

instance.user.email = new value
instance.first_name = new value
instance.save()

我读过我们可以对查询集运行更新(即使它返回一个对象)。现在假设我有一个这样的词典

dict = {"first_name : "John","last_name" : "deer",....}

我该怎么做这样的事情 modelEmployer.object.filter(instance.user.email = dict [“email”])。update(只更新用户对象,因为我想直接使用字典来更新该字段的用户对象。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以明确提及关系并执行此操作,

dict = {"user__first_name" : "John","user__last_name" : "deer",....}

在ORM中,按

进行操作
modelEmployer.object.filter(instance.user.email=dict["email"]).update(**dict)

希望这能解决您的问题