2013-09-25 38 views
6

lỗi của tôi tương tự như django error: __init__() takes exactly 1 argument (2 given), nhưng vì không có câu trả lời đúng và tôi không thể tìm cách giải quyết nó ngay bây giờ. Vì vậy, tôi hỏi lại.django-rest-framework: __init __() lấy chính xác 1 đối số (2 đã cho)

Trong views.py tôi viết:

class JSONResponse(HttpResponse): 
    """ 
    An HttpResponse that renders its content into JSON. 
    """ 
    def __init__(self, data, **kwargs): 
     content = JSONRenderer().render(data) 
     kwargs['content_type'] = 'application/json' 
     super(JSONResponse, self).__init__(content, **kwargs) 

class SnippetListView(APIView): 
    queryset = Snippet.objects.all() 

    def get(self, request, format=None): 
     users = self.queryset 
     serializer = SnippetSerializer(users, many=True) 
     return Response(serializer.data) 

    def post(self, request, format=None):  
     serializer = SnippetSerializer(data=request.DATA) 
     if serializer.is_valid(): 
      serializer.save() 
      return Response(serializer.data, status=status.HTTP_201_CREATED) 
     else: 
      return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) 

Trong urls.py tôi viết:

from django.conf.urls import patterns, url 
from rest_framework.urlpatterns import format_suffix_patterns 
from snippets.views import * 
urlpatterns = patterns('snippets.views', 
    url(r'^snippets/$', SnippetListView.as_view()), 
    url(r'^snippets/(?P<pk>[0-9]+)/$', 'snippets.views.SnippetDetailView'), 
) 

Và sau đó tôi chạy python manage.py runserver, và nó cho thấy tôi một thông báo lỗi: ImportError tại/đoạn/

No module named snippets 

nhưng tôi nhập đoạn trong setting.py

INSTALLED_APPS = (
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'rest_framework', 
'snippets', 

) 

theo dõi lỗi là:

Lỗi trong mẫu render

Trong mẫu E: \ Python27 \ lib \ site-packages \ rest_framework \ templates \ rest_framework \ base.html, lỗi tại dòng 51

No module named snippets 
41 <li class="dropdown"> 
42 <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 
43 {{ user }} 
44 <b class="caret"></b> 
45 </a> 
46 <ul class="dropdown-menu"> 
47 <li>{% optional_logout request %}</li> 
48 </ul> 
49 </li> 
50 {% else %} 
51 <li>{% optional_login request %}</li> <----the error is here 
52 {% endif %} 
53 {% endblock %} 
54 </ul> 
55 </div> 
56 </div> 
57 </div> 
58 {% endblock %} 
59 
60 {% block breadcrumbs %} 
61 <ul class="breadcrumb"> 

Trả lời

26

Bạn quên sử dụng as_view()?

url(r'^snippets/$', snippets.views.SnippetListView.as_view()), 
+0

thì lỗi đó không thể nhập đoạn mã.views.SnippetListView.as_view(). Parent module snippets.views.SnippetListView không tồn tại. – user504909

+0

nhưng acctually các SnippetListView là một lớp được định nghĩa trong snipets.views nộp – user504909

+0

@ user504909 Sau đó import nó xin vui lòng – ledzep2

Các vấn đề liên quan