小编Ang*_*uez的帖子

Django或Django Rest Framework在测试时无法解析url param

我正在使用Django 1.8.4和DRF 3.2.1,当我对指定的URL运行请求时一切正常,但是当我使用py.test运行测试时,函数更新不会进入task_id参数.但网址很好.

附上一些来自urls.py和views.py以及tests.py的代码..这是代码的摘录,当然很多东西都丢失了我只需要眼睛就能看出我做错了什么.

urls.py

from django.conf import settings
from django.conf.urls import include, patterns, url
from rest_framework import routers

from remotetask import views as rt_views

remotetask_detail = rt_views.RemoteTaskViewSet.as_view({'list': 'detail',
                                                       'put': 'update'})
remotetask_all = rt_views.RemoteTaskViewSet.as_view({'list': 'list'})

urlpatterns = patterns(
    '',
    url(r'^remotetasks/$', remotetask_all, name='api-remotetask-all'),
    url(r'^remotetasks/(?P<task_id>\d+)/$', remotetask_detail,
        name='api-remotetask-detail'),
    url(r'^api-auth/', include('rest_framework.urls',
                               namespace='rest_framework')),
)
Run Code Online (Sandbox Code Playgroud)

views.py

from django.shortcuts import get_object_or_404

from rest_framework import generics
from rest_framework import status
from rest_framework.response import Response

from remotetask.models import RemoteTask                                                                                                        
from remotetask.serializers import RemoteTaskSerializer
Run Code Online (Sandbox Code Playgroud)

来自rest_framework导入视图集

class RemoteTaskViewSet(viewsets.ViewSet):                                                                                        
    queryset = RemoteTask.objects.all() …
Run Code Online (Sandbox Code Playgroud)

django pytest django-rest-framework

5
推荐指数
1
解决办法
1175
查看次数

排序一个字典...有效的方法吗?

我有这样的问题,我有这样的乘客的字典:

passengers = {
              1: {'name': 'Foo', 'lastname': 'Bar', 'exclusive': True},
              2: {'name': 'John', 'lastname': 'Doe'},
              3: {'name': 'Rocky', 'lastname': 'Balboa', 'exclusive': True},
              4: {'name': 'Mohammed', 'lastname': 'Smith'}
             }
Run Code Online (Sandbox Code Playgroud)

而且我需要首先打印出这些项目的结果,然后是其余的:
这是所需的输出

List of passengers:
===================
1.- Foo Bar
2.- Rocky Balboa
3.- John Doe
4.- Mohammed Smith
Run Code Online (Sandbox Code Playgroud)

我试过了collections.deque,我找不到任何适合我的东西,直到我想出这个功能:

def prioritize_passengers(dictionary):
    priority_list = []
    normal_list = []
    sorted_list = []

    for key, item in dictionary.iteritems():
        if 'exclusive' in item:
            priority_list.append(key)
        else:
            normal_list.append(key)

    sorted_list = priority_list + normal_list

    return sorted_list …
Run Code Online (Sandbox Code Playgroud)

python dictionary list python-2.7

-1
推荐指数
1
解决办法
68
查看次数