关于django中数据库查询的问题

时间:2012-12-21 10:02:08

标签: mysql django models

我想从数据库中获取当前用户的最后插入ID。我知道我可以从此查询中获取表中的最后一行 last_inserted_id = User.objects.order_by(' - id')[0] < / strong>

但是,如果有多个用户同时登录到站点,那么我如何获取当前用户的最后插入数据。

2 个答案:

答案 0 :(得分:2)

要获取当前用户的最后插入数据,您应该在每个模型中存储对用户的引用:

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]

也许您可以通过某种方式对审核进行自动化。有关提示,请参阅Full Model History snippet

答案 1 :(得分:0)

我不确定我完全明白你对&#34;当前用户的最后插入ID&#34; 的意思。但这是一个例子:

user = User.objects.get(pk=1)

user.save()

print user.id # prints 10 if userid is 10