2016-12-30 67 views
0

我是Django的新手,創建一個網站,我希望登錄的用戶可以在表格中看到自己的數據。此表具有字段用戶名。Django 1.10使用登錄用戶的用戶名查詢表格

我希望用戶在列表視圖中看到自己的數據。我無法弄清楚如何使用用戶名來查詢。爲了讓你的我在做什麼的想法,這是我的代碼:(我試過多種其他的方法,但我不能獲得與用戶登錄名字符串

from django.contrib.auth.models import User   
from django.views.generic import ListView  

username = User.username 

class RoosterListView(LoginRequiredMixin, ListView): 
    queryset = Roosters.objects.filter(startvc__range=(DatumStart, DatumEind),username=CurrentUser).order_by("startvc")[:35] 

非常感謝。在

+0

注意,通常的做法是命名模型'Rooster',而不是'Roosters',並使用外鍵'User'模型而不是與用戶名的字符串。 – Alasdair

+0

我明白了。我會把雄雞換成雄雞。但公雞表的數據來自另一個應用程序。 –

回答

0

進步。您可以通過

username = request.user 

得到您的登錄用戶的用戶名,你可以簡單地通過你的請求參數周圍獲取當前會話的所有信息,並做你想做的任何查詢做。

+0

謝謝阿拉斯代爾!現在它工作正常。 –

1

刪除username = User.username行 - User是模型類,而不是當前用戶實例。

如果您設置queryset,您可以訪問當前用戶,因爲這是在模塊導入時加載的,而不是在發出請求時加載的。如果您覆蓋get_queryset方法,則可以使用self.request.user訪問該用戶。

class RoosterListView(LoginRequiredMixin, ListView): 
    def get_queryset(self): 
     return Roosters.objects.filter(startvc__range=(DatumStart, DatumEind), username=self.request.user.username).order_by("startvc")[:35]