在一个查询中通过唯一的非主键字段分配外键

时间:2021-07-22 17:35:06

标签: django django-models django-orm

假设我有以下两个模型:

class User(Model):
    email = models.EmailField(unique=True)


class Post(Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE)

现在,假设我有一个用户的电子邮件地址,我想将该用户设置为帖子的作者。我可以这样做:

post = Post()
# Just get the ID to avoid having to load a whole model
post.author_id = User.objects.values_list('pk', flat=True).get(email=user_email_address)
post.save()

然而,这会导致两个查询:一个是获取用户,另一个是保存帖子。我想知道是否有办法在一个查询中执行此操作。

我不想更改 to_fieldForeignKey

0 个答案:

没有答案