0

データベースから現在のユーザーの最後に挿入されたIDを取得したい。このクエリからテーブルに最後に挿入された行を取得できることを知っている last_inserted_id=User.objects.order_by('-id')[0]

しかし、同時にサイトにログインしている複数のユーザーがいる場合、現在のユーザーの最後に挿入されたデータを取得するにはどうすればよいですか。

4

2 に答える 2

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]

おそらく、何らかの方法で監査を認証することができます。アイデアについては、完全なモデル履歴スニペットを参照してください。

于 2012-12-21T10:16:53.323 に答える
0

「現在のユーザーの最後に挿入されたID」の意味を完全に理解しているかどうかはわかりません。しかし、ここに例があります:

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

user.save()

print user.id # prints 10 if userid is 10
于 2012-12-21T10:22:40.517 に答える