2017-11-14 11 views
0

DBにアップロードした最後のレコードを取得する必要があります。私は最後のものを見つける方法を知っています、それは簡単です(Documents.objects.last())。しかし、私はそれが正しいと確信していない、同じ時間に別のユーザーがファイルをアップロードできるので、私は彼の記録を取得します。現在のアクティブユーザの最終レコードを取得する方法は?

models.py私はそのファイルにrequest.user.usernameを使用することはできません

from .models import Document 

class TabuName: 
    def tabufunction(self): 
     res = Document.objects.last() 
     return res 

from django.db import models 

class Document(models.Model): 
    username = models.CharField(max_length=100, blank=True, null=True) 
    document = models.FileField(upload_to='documents/%Y/%m/%d/%H:%M:%S') 
    uploaded_at = models.DateTimeField(auto_now_add=True) 

tabu.py:ここに私のコードです。私はそれがジャンゴの良い練習ではないことを読んだ。あなたはこの問題の解決法を知っていますか?

Userモデルの
+2

"私はそのファイルでrequest.user.usernameを使用できません"なぜそうではありませんか? @Haydenが正しいです。 – navyad

答えて

0
res = Document.objects.filter(username=request.user.username).order_by('-id')[0] 
+0

彼の助言に従えば '.filter(user = request.user)'でフィルタリングする必要があります。 – echefede

3

まず、あなたがのForeignKeyにユーザー名を変更することができます

user = models.ForeignKey(User,on_delete=models.CASCADE) 

あなたはそれを気にignored.If通常では、通貨の問題があることができ、あなたがのために、cachedbに最後のユーザー情報を保存することができます例:Redis。

関連する問題