7

我的错误类似于django 错误: __init__() 恰好需要 1 个参数(给定 2 个),但由于没有正确答案,我现在找不到解决方法。所以,我再问一次。

在views.py中我写:

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)

在 urls.py 我写:

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'),
)

然后我运行 python manage.py runserver,它显示了一条错误消息:ImportError at /snippets/

No module named snippets

但我在 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',

)

错误轨迹是:

模板渲染期间出错

在模板 E:\Python27\lib\site-packages\rest_framework\templates\rest_framework\base.html 中,第 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">
4

1 回答 1

29

您是否忘记使用 as_view() ?

url(r'^snippets/$', snippets.views.SnippetListView.as_view()),
于 2013-09-25T05:21:39.333 回答