Django-如何使用户登录(ListView中的get_queryset)

丹尼斯

models.py:

from django.contrib.auth.models import User

class Location(models.Model):
    user = models.ForeignKey(User)

views.py

class UserLocationsListView(ListView):
    model = Location
    context_object_name = 'user_locations'

    def get_queryset(self):
        user_locations = Location.objects.filter(user=self.request.user)
        paginator = Paginator(user_locations, 10)
        page = self.request.GET.get('page')
        try:
            user_locations = paginator.page(page)
        except PageNotAnInteger:
            user_locations = paginator.page(1)
        except EmptyPage:
            user_locations = paginator.page(paginator.num_pages)
        return user_locations

urls.py:

url(r'^member/user_locations/$', UserLocationsListView.as_view(), name='user_locations'),

我希望用户能够在页面上看到其所有位置。

似乎我在使用REQUEST时遇到了问题(在过滤时以及在页面定义中)

我该如何解决?

谢谢!

Environment:


Request Method: GET
Request URL: http://localhost:8000/member/user_locations/

Django Version: 1.8.6
Python Version: 2.7.11
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.sites',
 'allauth',
 'allauth.account',
 'allauth.socialaccount',
 'allauth.socialaccount.providers.facebook',
 'allauth.socialaccount.providers.instagram',
 'allauth.socialaccount.providers.twitter',
 'crispy_forms',
 'findlocation_app')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "C:\commercial_projects\fl\lib\site-packages\django\core\handlers\base.py" in get_response
  164.                 response = response.render()
File "C:\commercial_projects\fl\lib\site-packages\django\template\response.py" in render
  158.             self.content = self.rendered_content
File "C:\commercial_projects\fl\lib\site-packages\django\template\response.py" in rendered_content
  133.         template = self._resolve_template(self.template_name)
File "C:\commercial_projects\fl\lib\site-packages\django\template\response.py" in _resolve_template
  88.         new_template = self.resolve_template(template)
File "C:\commercial_projects\fl\lib\site-packages\django\template\response.py" in resolve_template
  78.             return loader.select_template(template, using=self.using)
File "C:\commercial_projects\fl\lib\site-packages\django\template\loader.py" in select_template
  64.                     return engine.get_template(template_name, dirs)
File "C:\commercial_projects\fl\lib\site-packages\django\template\backends\django.py" in get_template
  30.         return Template(self.engine.get_template(template_name, dirs))
File "C:\commercial_projects\fl\lib\site-packages\django\template\engine.py" in get_template
  167.         template, origin = self.find_template(template_name, dirs)
File "C:\commercial_projects\fl\lib\site-packages\django\template\engine.py" in find_template
  141.                 source, display_name = loader(name, dirs)
File "C:\commercial_projects\fl\lib\site-packages\django\template\loaders\base.py" in __call__
  13.         return self.load_template(template_name, template_dirs)
File "C:\commercial_projects\fl\lib\site-packages\django\template\loaders\base.py" in load_template
  17.             template_name, template_dirs)
File "C:\commercial_projects\fl\lib\site-packages\django\template\loaders\filesystem.py" in load_template_source
  38.                     return fp.read(), filepath
File "C:\commercial_projects\fl\lib\codecs.py" in decode
  314.         (result, consumed) = self._buffer_decode(data, self.errors, final)

Exception Type: UnicodeDecodeError at /member/user_locations/
Exception Value: 'utf8' codec can't decode byte 0xcf in position 748: invalid continuation byte
阿拉斯代尔

您的问题与追溯完全无关。追溯显示您的视图所使用的模板中的字符无效(在748位)。去掉它。

视图本身看起来还不错。self.request.user正如您已经在做的那样,使用户使用该方法的正确方法是

您可以略微简化该方法-您无需在该方法中进行分页,ListView它将为您解决这一问题。

class UserLocationsListView(ListView):
    ...
    paginate_by = 10

    def get_queryset(self):
        queryset = super(UserLocationsListView, self).get_queryset()
        queryset = queryset.filter(user=self.request.user)
        return queryset

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django-如何使用户登录(ListView中的get_queryset)

来自分类Dev

如何在Django中正确使用get_queryset?

来自分类Dev

Django:在UpdateView中覆盖get_queryset()

来自分类Dev

如何在 Django CBV get_queryset() 中检索 GET 参数

来自分类Dev

如何在 Django 中的 get_queryset() 中返回查询集

来自分类Dev

如何覆盖 get_queryset 方法以仅显示 django 中多对多字段中包含的对象?

来自分类Dev

如何在Django Rest Framework 3中覆盖ModelViewSet的get_queryset?

来自分类Dev

Django Rest框架中的get_queryset方法和ViewSets

来自分类Dev

Django过滤器get_queryset中的ForeignKey关系

来自分类Dev

Django ReadOnlyModelViewSet:get_querySet被pk过滤

来自分类Dev

如何在Django视图集中正确使用javascript axios .get()函数调用get_queryset()函数?

来自分类Dev

如何在Django视图中定义get_queryset,get_context_data?

来自分类Dev

如何将参数传递给Django模型管理器的get_queryset方法?

来自分类Dev

如何将参数传递给Django模型管理器的get_queryset方法?

来自分类Dev

Django的通用视图:如何根据外部类属性过滤get_queryset?

来自分类Dev

get_queryset不会影响Django rest框架ModelViewSet中的查询

来自分类Dev

在 Django REST Framework 中向 get_queryset 请求添加参数

来自分类Dev

Django get_queryset方法的单元测试失败

来自分类Dev

从get_queryset()django更新上下文参数值

来自分类Dev

pk上的Django get_queryset过滤器对象

来自分类Dev

Django从get_queryset(self)排序搜索结果

来自分类Dev

基于Django类的视图,在get_queryset内部导入

来自分类Dev

Django get_queryset方法的单元测试失败

来自分类Dev

Django中如何查看登录用户以外的用户信息?

来自分类Dev

如何使用Django登录

来自分类Dev

如果由QuerySet.as_manager()创建,则修改Django Manager get_queryset()方法。

来自分类Dev

如何根据登录的用户在Django模板中显示内容?

来自分类Dev

如何在Django的表单类中传递当前登录的用户

来自分类Dev

如何在Django中为登录的用户显示不同的视图?

Related 相关文章

  1. 1

    Django-如何使用户登录(ListView中的get_queryset)

  2. 2

    如何在Django中正确使用get_queryset?

  3. 3

    Django:在UpdateView中覆盖get_queryset()

  4. 4

    如何在 Django CBV get_queryset() 中检索 GET 参数

  5. 5

    如何在 Django 中的 get_queryset() 中返回查询集

  6. 6

    如何覆盖 get_queryset 方法以仅显示 django 中多对多字段中包含的对象?

  7. 7

    如何在Django Rest Framework 3中覆盖ModelViewSet的get_queryset?

  8. 8

    Django Rest框架中的get_queryset方法和ViewSets

  9. 9

    Django过滤器get_queryset中的ForeignKey关系

  10. 10

    Django ReadOnlyModelViewSet:get_querySet被pk过滤

  11. 11

    如何在Django视图集中正确使用javascript axios .get()函数调用get_queryset()函数?

  12. 12

    如何在Django视图中定义get_queryset,get_context_data?

  13. 13

    如何将参数传递给Django模型管理器的get_queryset方法?

  14. 14

    如何将参数传递给Django模型管理器的get_queryset方法?

  15. 15

    Django的通用视图:如何根据外部类属性过滤get_queryset?

  16. 16

    get_queryset不会影响Django rest框架ModelViewSet中的查询

  17. 17

    在 Django REST Framework 中向 get_queryset 请求添加参数

  18. 18

    Django get_queryset方法的单元测试失败

  19. 19

    从get_queryset()django更新上下文参数值

  20. 20

    pk上的Django get_queryset过滤器对象

  21. 21

    Django从get_queryset(self)排序搜索结果

  22. 22

    基于Django类的视图,在get_queryset内部导入

  23. 23

    Django get_queryset方法的单元测试失败

  24. 24

    Django中如何查看登录用户以外的用户信息?

  25. 25

    如何使用Django登录

  26. 26

    如果由QuerySet.as_manager()创建,则修改Django Manager get_queryset()方法。

  27. 27

    如何根据登录的用户在Django模板中显示内容?

  28. 28

    如何在Django的表单类中传递当前登录的用户

  29. 29

    如何在Django中为登录的用户显示不同的视图?

热门标签

归档