之前我已经创建了几个Tastypie API,因此我对导致此问题的原因感到特别困惑。
resources.py
class PrettyJSONSerializer(Serializer):
json_indent = 4
def to_json(self, data, options = None):
options = options or {}
data = self.to_simple(data, options)
return simplejson.dumps(data, cls = json.DjangoJSONEncoder, sort_keys = True, ensure_ascii = False, indent = self.json_indent)
####################################
class RankedResource(ModelResource):
class Meta:
queryset = Ranked.objects.all()
allowed_methods = ['get']
serializer = PrettyJSONSerializer()
resource_name = 'ranked'
authorization = Authorization()
class StudentResource(ModelResource):
class Meta:
queryset = Student.objects.all()
allowed_methods = ['get']
serializer = PrettyJSONSerializer()
resource_name = 'student'
authorization = Authorization()
class UnrankedResource(ModelResource):
class Meta:
queryset = Unranked.objects.all()
allowed_methods = ['get']
serializer = PrettyJSONSerializer()
resource_name = 'unranked'
authorization = Authorization()
urls.py
from django.conf.urls import patterns, include, url
from tastypie.api import Api
from django.contrib import admin
from app.api.resources import RankedResource, UnrankedResource
admin.autodiscover()
v1_api = Api(api_name = 'v1')
v1_api.register(RankedResource())
#v1_api.register(UnrankedResource())
#v1_api.register(StudentResource())
RankedResource完美运行,但是如果我尝试导入其他两个资源(UnrankedResource或StudentResource)中的任何一个,它将返回ImportError: cannot import name UnrankedResource
。我已经对我的拼写进行了三次检查,以确保不会导致问题,我也不相信。
什么可能导致一个资源工作但其他所有资源都失败?我完全难过,任何帮助都表示赞赏。感谢。
编辑:
我曾尝试多次重命名资源,无论出于什么原因,只有当它被命名为RankedResource时它才有效。任何其他资源名称都返回相同的ImportError