我想要一個可瀏覽的API使用django-rest-framework爲模型使用mongodb的休息服務。 具體而言,我希望能夠將URL指向所有文章列表中的實際GET方法。Django支持的mongo支持模式的可瀏覽的REST api
我有以下的型號和序列化:在運行時,我得到了以下錯誤
class Article(mongoengine.Document):
article_id = mongoengine.StringField(required=True)
author_id = mongoengine.StringField(required=True)
content = mongoengine.StringField(required=True)
class ArticleSerializer(serializers.Serializer):
url = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='article-detail')
article_id = serializers.CharField(required=True)
author_id = serializers.CharField(required=True)
content = serializers.CharField(required=True)
def restore_object(self, attrs, instance=None):
if instance is not None:
for k, v in attrs.iteritems():
setattr(instance, k, v)
return instance
return Article(**attrs)
但是:
AttributeError: 'Article' object has no attribute 'url'
我嘗試添加url屬性的模型,但在任何情況下,適當的對象序列化時不會添加url。 什麼將適當使用serializers.HyperlinkedRelatedField爲我的mongo對象文章?
編輯:
我認爲這幾乎是它歸功於高潮。我改
serializers.HyperlinkedIdentityField(view_name='article-detail', lookup_field='article_id')
,但我得到
{"url": "/article/125/", "article_id": "125"}.
我怎麼能有DNS名稱之前,這樣的API是真正可瀏覽? 例如:
{"url":" http://example.com:1234/article/125/ ", "article_id":"125"}
不是你的問題的答案,而是看看http://python-eve.org- monogodb的REST API。代碼是在https://github.com/nicolaiarocci/eve –
嗨,亞當,謝謝,偉大的鏈接,沒有前夜翻閱。不過,我試圖用django-rest-framework做同樣的可瀏覽的API(對象中的自引用url)。 – zermelozf