【发布时间】:2019-05-24 15:52:51
【问题描述】:
我有用于排序对象的表单中的 post 方法
<form method="post" action="{% url 'package_dashboard' %}">
{% csrf_token %}
<button type="submit" name="order_by_title">sortByName</button>
<button type="submit" name="order_by_date">sortByDate</button>
</form>
我的意见.py
class PackageDashboardView(PackageAccessMixin, ListView):
model = Package
template_name = "packages/dashboard.html"
def get_queryset(self):
queryset = Package.objects.all().order_by('title', 'version__name'). \
select_related('title', 'version').defer('title__metadata', 'validation', 'translations', 'diff_fields')
if "order_by_date" in self.request.GET:
queryset = Package.objects.all().order_by('-started', 'version__name'). \
select_related('title', 'version').defer('title__metadata', 'validation', 'translations', 'diff_fields')
elif 'order_by_title' in self.request.GET:
queryset = Package.objects.all().order_by('title', 'version__name'). \
select_related('title', 'version').defer('title__metadata', 'validation', 'translations', 'diff_fields')
return queryset
我的 urls.py
url(r'^packages/$', packages.PackageDashboardView.as_view(), name="package_dashboard"),
错误
内部服务器错误:/packages/ Traceback(最近一次调用最后一次):
文件 “/home/abdel/Desktop/eclair-packager/eclair_env/lib/python3.6/site-packages/django/core/handlers/exception.py”, 第 41 行,在内部 response = get_response(请求)文件“/home/abdel/Desktop/eclair-packager/eclair_env/lib/python3.6/site-packages/django/core/handlers/base.py”, 第 187 行,在 _get_response response = self.process_exception_by_middleware(e, request) 文件“/home/abdel/Desktop/eclair-packager/eclair_env/lib/python3.6/site-packages/django/core/handlers/base.py”, 第 185 行,在 _get_response 中 response = Wrapped_callback(request, *callback_args, **callback_kwargs) 文件 "/home/abdel/Desktop/eclair-packager/eclair_env/lib/python3.6/site-packages/django/views/generic/base.py", 第 68 行,在视图中 返回 self.dispatch(request, *args, **kwargs) 文件“/home/abdel/Desktop/eclair-packager/packager/permission_mixins.py”, 第 20 行,正在调度中 返回 super().dispatch(request, *args, **kwargs) 文件“/home/abdel/Desktop/eclair-packager/eclair_env/lib/python3.6/site-packages/django/contrib/auth/mixins.py ", 第 56 行,正在调度中 return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs) File "/home/abdel/Desktop/eclair-packager/eclair_env/lib/python3.6/site-packages/django/views/generic/基础.py", 第 88 行,正在调度中 返回处理程序(请求,*args,**kwargs)文件“/home/abdel/Desktop/eclair-packager/packager/permission_mixins.py”, 第 96 行,在帖子中 obj = self.get_package() 文件“/home/abdel/Desktop/eclair-packager/packager/permission_mixins.py”, 第 78 行,在 get_package 中 return get_object_or_404(Package, pk=self.kwargs['pk'], **kwargs) KeyError: 'pk' [26/Dec/2018 11:35:56] "POST /packages/ HTTP/1.1" 500 109583
【问题讨论】:
-
错误信息告诉你问题出在permission_mixins.py,你没有显示。
-
您找到解决方案了吗?