2016-12-30 138 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]