2016-03-28 89 views
1
TypeError at /api/team/ 
The `fields` option must be a list or tuple or "__all__". Got str. 
Request Method: GET 
Request URL: http://127.0.0.1:8000/api/team/ 
Django Version: 1.9 
Exception Type: TypeError 
Exception Value:  
The `fields` option must be a list or tuple or "__all__". Got str. 
Exception Location: /Library/Python/2.7/site-packages/rest_framework/serializers.py in get_field_names, line 971 
Python Executable: /usr/bin/python 
Python Version: 2.7.10 
Python Path:  
['/Desktop/webprog/python/wsgi/openshift', 
'/Library/Python/2.7/site-packages/Django-1.9-py2.7.egg', 
'/Library/Python/2.7/site-packages', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC'] 
Server time: Mon, 28 Mar 2016 14:42:11 +0000 

这个错误意味着什么,它发生在哪里?它说异常的位置,但在rest_framework内...但错误显然是在我的代码中,我怎么能找出? :SDjango错误`fields`选项必须是列表或元组或“__all__”

serializers.py

from api.models import Team 
from rest_framework import serializers 

class TeamSerializer(serializers.HyperlinkedModelSerializer): 
    class Meta: 
     model = Team 
     fields = ('name') 
+0

你可以添加你的其他代码部分(序列化器) – Anoop

回答

9

你只需要改变这一点:

fields = ('name') 

这样:

fields = ('name',) 

注意逗号。只有一个对象的元组需要一个尾随逗号来区分它和一个带括号的对象。

相关问题