我想从数据库中获取当前用户的最后插入 id。我知道我可以从此查询中获取表中最后插入的行 last_inserted_id = User.objects.order_by('-id')[0]
但是,如果有多个用户同时登录到站点,那么我如何才能获得当前用户最后插入的数据。
要获取当前用户的最后插入数据,您应该在每个模型中存储对用户的引用:
class Album(models.Model):
artist = models.ForeignKey(Musician)
name = models.CharField(max_length=100)
release_date = models.DateField()
num_stars = models.IntegerField()
inserted_by = models.ForeignKey(User, ...) #here
然后,您应该记住在创建新模型时填充此属性。
要检索此用户最后插入的数据:
Album.objects.filter( inserted_by = request.user ).order_by('-id')[0]
也许您可以通过某种方式使审计自动化。有关想法,请参阅完整的模型历史片段。
我不确定我是否完全理解“当前用户的最后插入 id”的意思。但这里有一个例子:
user = User.objects.get(pk=1)
user.save()
print user.id # prints 10 if userid is 10