2012-10-09 23 views
0

我無法理解此錯誤......我使用的是restframework2分支。使用ModelResource時出錯:無法設置屬性

我做錯了什麼,或者這是restframework2代碼中的錯誤?

這裏是我的代碼:

resources.py

class TemplateHoursSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = TemplateHours 
     nested = True 

    start = HourField() 
    end = HourField() 
    employee = EmployeeSerializer() 

class TemplateHoursResource(ModelResource): 
    model = TemplateHours 
    serializer_class = TemplateHoursSerializer 

urls.py

url(r'^api/template-hours/$', TemplateHoursResource.as_view(actions={ 
    'get': 'list', 
    'post': 'create' 
})), 
url(r'^api/template-hours/(?P<pk>[0-9]+)/$', TemplateHoursResource.as_view(actions={ 
    'get': 'retrieve', 
    'put': 'update', 
    'delete': 'destroy' 
})), 
... 

當我訪問(或POST到)http://127.0.0.1:8000/api/template-hours/,我得到這個錯誤和回溯:

AttributeError at /api/template-hours/ 
can't set attribute 
Request Method: GET 
Request URL: http://127.0.0.1:8000/api/template-hours/ 
Django Version: 1.4.1 
Exception Type: AttributeError 
Exception Value:  
can't set attribute 
Exception Location: C:\Users\Mathieu\Development\django_projects\hedron\Lib\site- packages\rest_framework\resources.py in wrapped, line 13 
Python Executable: C:\Python27\python.exe 
Python Version: 2.7.2 
Python Path:  
['C:\\Users\\Mathieu\\Development\\django_projects\\hedron\\Scripts', 
'C:\\Python27\\lib\\site-packages\\setuptools-0.6c12dev_r88846-py2.7.egg', 
'C:\\Python27\\lib\\site-packages\\virtualenv-1.7.1.2-py2.7.egg', 
'C:\\Users\\Mathieu\\Development\\django_projects\\hedron\\Lib\\site-packages', 
'C:\\Users\\Mathieu\\Development\\django_projects\\hedron\\hedron', 
'C:\\Python27\\python27.zip', 
'C:\\Python27\\DLLs', 
'C:\\Python27\\lib', 
'C:\\Python27\\lib\\plat-win', 
'C:\\Python27\\lib\\lib-tk', 
'C:\\Python27', 
'C:\\Python27\\lib\\site-packages', 
path(u'C:\\Users\\Mathieu\\Development\\django_projects\\hedron'), 
path(u'C:\\Users\\Mathieu\\Development\\django_projects\\hedron\\hedron\\apps'), 
path(u'C:\\Users\\Mathieu\\Development\\django_projects\\hedron\\hedron\\libs')] 
Server time: di, 9 Okt 2012 22:46:50 +0200 

Traceback: 
File "C:\Users\Mathieu\Development\django_projects\hedron\Lib\site-packages\django\core\handlers\base.py" in get_response 
    111. response = callback(request, *callback_args, **callback_kwargs) 
File "C:\Users\Mathieu\Development\django_projects\hedron\Lib\site-packages\rest_framework\resources.py" in view 
    48. return self.dispatch(request, *args, **kwargs) 
File "C:\Users\Mathieu\Development\django_projects\hedron\Lib\site-packages\django\views\decorators\csrf.py" in wrapped_view 
    77. return view_func(*args, **kwargs) 
File "C:\Users\Mathieu\Development\django_projects\hedron\Lib\site-packages\rest_framework\views.py" in dispatch 
    324. response = self.handle_exception(exc) 
File "C:\Users\Mathieu\Development\django_projects\hedron\Lib\site-packages\rest_framework\views.py" in dispatch 
    321. response = handler(request, *args, **kwargs) 
File "C:\Users\Mathieu\Development\django_projects\hedron\Lib\site-packages\rest_framework\resources.py" in list 
    74. return self.root_view().list(request, args, kwargs) 
File "C:\Users\Mathieu\Development\django_projects\hedron\Lib\site-packages\rest_framework\resources.py" in root_view 
    68. return wrapped(self, self.root_class()) 
File "C:\Users\Mathieu\Development\django_projects\hedron\Lib\site-packages\rest_framework\resources.py" in wrapped 
    13. setattr(dest, attr, getattr(source, attr)) 

Exception Type: AttributeError at /api/template-hours/ 
Exception Value: can't set attribute 

回答

1

資源和路由器尚未在[REST框架2的測試版]中完成/支持。他們的文檔是我想讓設計看起來像的一個佔位符,但我今天將從索引中刪除它們。希望他們能夠在2.0中實現它,但是我認爲它並不重要,因爲你可以通過Views和顯式URLconf來完成你所需要的一切。資源&路由器只是給你一個有用的捷徑。

相關問題