データベースから現在のユーザーの最後に挿入された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