- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
模型.py:
from django.contrib.auth.models import User
class Location(models.Model):
user = models.ForeignKey(User)
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
url(r'^member/user_locations/$', UserLocationsListView.as_view(), name='user_locations'),
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
最佳答案
您的问题与回溯完全无关。回溯显示您的 View 使用的模板中有一个无效字符(位置 748)。去掉它。
View 本身看起来不错。在方法中获取用户的正确方法是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
关于Django - 如何让用户登录(ListView 中的 get_queryset),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37299091/
我收到以下错误: ImproperlyConfigured at /elearning/7447932a-6044-498a-b902-97cbdd0a4001/ DetailView is miss
我通过外键字段进行了一种过滤,具有两个搜索条件:OR 和 AND 以及多项选择。 forms.py class EmployeeSkillFilter(forms.ModelForm): sk
我有一个页面,显示将根据用户选择的月份显示每月收入。 在 HTML 中,有一个包含所有可能的输入。现在在我的 I'm returning a new variable for use in the t
这两段代码乍一看是相同的: class IndexView(generic.ListView): template_name = 'polls/index.html' context_
我最近了解到,当您特别想要执行默认 View 以外的操作时,您应该重写 get 方法: class ExampleView(generic.ListView): template_name =
因为 get_queryset() 只返回一个查询集,我需要查询集 search_store 的长度到模板文件。因此,我尝试通过 get_context_data 将值发送到模板。 我知道我可以通过
我有内置的 Django API,我有返回所有对象的端点。我希望用户为我提供关键字来过滤这个查询集。最好的方法是什么。以及如何做到这一点? 它在 get_queryset 中吗?如果是,你能帮我吗!?
我的代码是 class Leads(LoginRequiredMixin, ListView): def get_queryset(self): q = self.request.GET.get('q
我正在使用 Django 细节 View 。最初,我使用了 URL 模式 url(r'^todo/details/(?P[\d]+)', views.todoDetailView.as_view(),
模型.py: from django.contrib.auth.models import User class Location(models.Model): user = models.F
我更改了 .all 方法,因此它只会选择具有 published=True 的实例: class EventManager(models.Manager): def all(self, *ar
我无法让我的自定义管理器工作... class PublicArtigoManager(models.Manager): def get_queryset(self): ret
我正在使用 Django 2.2.10。我有一个搜索栏,它使用 searchresultsview(listview) 类中的 get_queryset(self) 将搜索结果返回到显示页面。我设置了
我正在尝试关注这个 documentation .我想以某种方式将参数传递给 get_queryset,但不知道如何传递。下面的演示不工作。 class ContextAwareNotificatio
我在 DRF 文档上读到,您可以通过覆盖 .get_queryset() 来过滤查询参数。我正在寻找最佳实践,返回什么,以防过滤器不正确以及在哪里返回错误消息。 我提到的文档是 here我在下面包含源
我有这个 ModelViewset 和一个 ModelSerializer class GenerarFacturaViewset(viewsets.ModelViewSet): serial
我正在使用自定义 mixin 将过滤器应用于使用 MultipleObjectMixin 分页的基于类的 View 的查询集。当我应用过滤器以使当前页面超出数据集范围时,显然会得到 404。我想要做的
我正在覆盖 ModelViewSet 中的 get_queryset 以支持“我”作为过滤器和多个 pk 搜索: class UserViewSet(viewsets.ModelViewSet): q
我正在尝试通过 get_queryset() 函数和使用 order_by() 来编辑 listView 中的顺序当我尝试打印生成的查询时,它会忽略 order_by 查询并仅使用我的模型类中 Met
基本上,我有一个目录 View 集。在 ListView 中,我想进行一些过滤并相应地返回。 相关的目录模型字段是: class Catalog(models.Model): name = m
我是一名优秀的程序员,十分优秀!