我最近遇到django-roa
,并认为这非常适合我正在进行的项目。不幸的是,我在他们的基本榜样上遇到了最艰难的时刻。我已经建立了一个基本的django项目,所以我很肯定这个问题与初始设置无关。
我有一个简单的模型:
from django.db import models
from django_roa import Model
class RemoteModel(Model):
slug = models.CharField(max_length=255, blank=True, null=True)
@staticmethod
def get_resource_url_list():
return u'http://my-restful-url/path/resource'
...以下是我settings.py
的相关部分:
INSTALLED_APPS = (
'django_roa',
'myapps',
# ... other default apps ...
)
# ROA Stuff
ROA_MODELS = True
ROA_FORMAT = 'json'
ROA_DJANGO_ERRORS = True
ROA_HEADERS = {
'ApiKey': 'apikey'
}
然而,当我去测试这个例子时,会发生这种情况......
>>> from myapps.models import RemoteModel
>>> RemoteModel.objects.all()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'objects'
>>> type(RemoteModel)
<type 'NoneType'>
我错过了什么吗?从我所看到的,设置几乎与提供的twitter example app相同。
如何使用Django-ROA设置简单的远程模型?
修改
以下是安装的软件包:
Django==1.4.1
django-roa==1.7
http-parser==0.8.3
restkit==4.2.2
socketpool==0.5.3
wsgiref==0.1.2
答案 0 :(得分:0)
在撰写本文时,上面的示例应该可以正常工作。问题是django-roa
代码。列出的软件包(1.7)不支持Django 1.2以外的版本。
在this pull request中已经有工作让django-roa
在Django 1.5中工作,但为了让事情适用于1.4或1.3,你需要按照拉取请求中的描述进行以下更改:
是的,只需要从[{]
attached_to
方法调用中删除[{]add_to_class
参数,以便支持django 1.4并从only_installed
中删除get_model
参数函数调用以便在捕获TypeError
之后支持django 1.3。 [{1}}中都有[更改]。