python – ‘str’对象不可调用Django Rest Framework
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – ‘str’对象不可调用Django Rest Framework,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4290字,纯文字阅读大概需要7分钟。
内容图文
![python – ‘str’对象不可调用Django Rest Framework](/upload/InfoBanner/zyjiaocheng/750/68f92d08f2af48f085614ae59f62d184.jpg)
我正在尝试创建一个API视图,但我收到了一个错误.有人可以帮忙吗?
urls.py:
app_name = 'ads'
urlpatterns = [
# ex: /ads/
url(r'^$', views.ListBrand.as_view(), name='brand_list'),
]
views.py:
from rest_framework.views import APIView
from rest_framework.response import Response
from . import models
from . import serializers
class ListBrand(APIView):
def get(self, request, format=None):
brands = models.Brand.objects.all()
serializer = serializers.BrandSerializer(brands, many=True)
data = serializer.data
return Response(data)
更新:这里是错误,这是一个字符串错误.我似乎无法找到它的来源.
TypeError at /api/v1/ads/
'str' object is not callable
Request Method: GET
Request URL: http://localhost/api/v1/ads/
Django Version: 1.10.2
Exception Type: TypeError
Exception Value:
'str' object is not callable
Exception Location: C:\Users\Leon\Desktop\esriom\lib\site-packages\rest_framework\views.py in <listcomp>, line 264
Python Executable: C:\Users\Leon\Desktop\esriom\Scripts\python.exe
Python Version: 3.5.2
Python Path:
['C:\\Users\\Leon\\Desktop\\esirom',
'C:\\Users\\Leon\\Desktop\\esriom\\lib\\site-packages\\setuptools-18.1-py3.5.egg',
'C:\\Users\\Leon\\Desktop\\esriom\\lib\\site-packages\\pip-7.1.0-py3.5.egg',
'C:\\Users\\Leon\\Desktop\\esriom\\Scripts\\python35.zip',
'C:\\Users\\Leon\\AppData\\Local\\Programs\\Python\\Python35-32\\DLLs',
'C:\\Users\\Leon\\AppData\\Local\\Programs\\Python\\Python35-32\\lib',
'C:\\Users\\Leon\\AppData\\Local\\Programs\\Python\\Python35-32',
'C:\\Users\\Leon\\Desktop\\esriom',
'C:\\Users\\Leon\\Desktop\\esriom\\lib\\site-packages']
Server time: Fri, 7 Oct 2016 12:44:04 -0500
这里有痕迹
Environment:
Request Method: GET
Request URL: http://localhost/api/v1/ads/
Django Version: 1.10.2
Python Version: 3.5.2
Installed Applications:
['rest_framework',
'ads.apps.AdsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "C:\Users\Leon\Desktop\esriom\lib\site-packages\django\core\handlers\exception.py" in inner
39. response = get_response(request)
File "C:\Users\Leon\Desktop\esriom\lib\site-packages\django\core\handlers\base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "C:\Users\Leon\Desktop\esriom\lib\site-packages\django\core\handlers\base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Leon\Desktop\esriom\lib\site-packages\django\views\decorators\csrf.py" in wrapped_view
58. return view_func(*args, **kwargs)
File "C:\Users\Leon\Desktop\esriom\lib\site-packages\django\views\generic\base.py" in view
68. return self.dispatch(request, *args, **kwargs)
File "C:\Users\Leon\Desktop\esriom\lib\site-packages\rest_framework\views.py" in dispatch
457. request = self.initialize_request(request, *args, **kwargs)
File "C:\Users\Leon\Desktop\esriom\lib\site-packages\rest_framework\views.py" in initialize_request
364. authenticators=self.get_authenticators(),
File "C:\Users\Leon\Desktop\esriom\lib\site-packages\rest_framework\views.py" in get_authenticators
264. return [auth() for auth in self.authentication_classes]
File "C:\Users\Leon\Desktop\esriom\lib\site-packages\rest_framework\views.py" in <listcomp>
264. return [auth() for auth in self.authentication_classes]
Exception Type: TypeError at /api/v1/ads/
Exception Value: 'str' object is not callable
解决方法:
我的问题出在我的settings.py文件中:
DIFF:
REST_FRAMEWORK = {
- 'DEFAULT_AUTHENTICATION_CLASSES': {
+ 'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
- }
+ ),
- 'DEFAULT_PERMISSION_CLASSES': {
+ 'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticatedOrReadOnly',
- },
+ ),
}
内容总结
以上是互联网集市为您收集整理的python – ‘str’对象不可调用Django Rest Framework全部内容,希望文章能够帮你解决python – ‘str’对象不可调用Django Rest Framework所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。