我正在为REST-ful网络服务设计客户端。
在我的django应用程序中本地表示远程资源的最佳方法是什么?
例如,如果API公开资源,例如:
到目前为止,我已经考虑过两种不同的方法:
使用以下自定义方法实现数据访问层类:
所以我将创建一些自定义的类。
有没有人遇到过类似的问题?也许正在使用一些外部API(即推特?)
欢迎任何建议。
PS:请告诉我一些问题是否令人困惑,因为我无法准确地说出来。
答案 0 :(得分:0)
这看起来像是custom manager的完美之地。管理器是“表级”功能的首选方法,而不是属于模型类的“行级”功能。基本上,你要定义一个这样的经理:
class CarAPIManager(models.Manager):
def get_detail(self, id):
return self.get(id=id)
def search(self, term):
return self.filter(model_name__icontains=term)
这可以用作默认管理器 - 例如,在模型定义中:
class Car(models.Model):
...
objects = CarAPIManager()
# usage
>>> Car.objects.search(...)
或者你可以把它作为一个额外的经理,作为班级的财产:
class Car(models.Model):
...
api = CarAPIManager()
# usage
>>> Car.api.search(...)