2013-10-17 26 views
0

我最近遇到了django-roa,並認爲它非常適合我正在開發的項目。不幸的是,我在他們最基本的例子中遇到了最困難的時刻。我建立了一個基本的django項目,所以我肯定這個問題與初始設置無關。使用Django-ROA創建簡單的遠程模型

我有一個簡單的模型:

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

在撰寫本文時,上面的例子應該工作。問題是django-roa代碼。列出的軟件包(1.7)不支持超越Django 1.2。

目前已在this pull request工作得到django-roa在Django 1.5工作,但得到的東西爲1.4或1.3的工作,你需要做以下修改爲在拉請求描述:

是的,只需要從[add_to_class方法調用中刪除[attached_to]參數以支持django 1.4並從get_model函數調用中移除only_installed參數,以便在捕獲TypeError後支持django 1.3。這兩個[更改]在db/models.py