假设我有以下两个模型:
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_field
的 ForeignKey
。