python - tastypie 从非 pk 字段访问数据

标签 python django web-services resources tastypie

<分区>

我尝试了来自 Tastypie Cookbook 的这个例子.

通过添加此代码以从用户名而不是 id 访问用户资源。

 #myapp/api/resources.py
class UserResource(ModelResource):
    class Meta:
        queryset = User.objects.all()

    def prepend_urls(self):
        return [
            url(r"^(?P<resource_name>%s)/(?P<username>[\w\d_.-]+)/$" % self._meta.resource_name, self.wrap_view('dispatch_detail'), name="api_dispatch_detail"),
        ]

这是我的 URL 文件,

v1_api = Api(api_name='v1')
v1_api.register(userResource())

这是所有可用的 URL,

^api/ ^(?P<api_name>v1)/ ^(?P<resource_name>users)/$ [name='api_dispatch_list']
^api/ ^(?P<api_name>v1)/ ^(?P<resource_name>users)/schema/$ [name='api_get_schema']
^api/ ^(?P<api_name>v1)/ ^(?P<resource_name>users)/set/(?P<pk_list>\w[\w/;-]*)/$ [name='api_get_multiple']
^api/ ^(?P<api_name>v1)/ ^(?P<resource_name>users)/(?P<pk>\w[\w/-]*)/$ [name='api_dispatch_detail'] 

我在寻找什么而不是调用这个 url

http://myDomain.com:8000/api/v1/users/1/?format=json

我想根据用户名来调用

http://myDomain.com:8000/api/v1/users/myUserName/?format=json

最佳答案

您使用的是哪个版本的 tastypie? 0.9.11 使用 override_urls 而 0.9.12(测试版)引入了 prepend_urls 并且两个版本的 cookbook 不同。您可能仍在使用 0.9.11。

参见: http://django-tastypie.readthedocs.org/en/v0.9.11/cookbook.html#using-non-pk-data-for-your-urls

关于python - tastypie 从非 pk 字段访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11690663/

相关文章:

java - 使用旧资源的 Apache Tomcat - Eclipse 项目中的更改未反射(reflect)在 Web App 中

java - 在javascript中调用restful webservice时如何传递对象

python - 图像实际上是如何用 skimage (Python) 保存的

python - SQLAlchemy 核心插入使( Pyramid )作用域 session 挂起

Python 使用正则表达式提取 pandas 列中的部分字符串

python - 正则表达式 - 匹配一个字符及其所有变音符号(又名重音不敏感)

python - 如何在 GeoDjango 中使用子查询获取相交几何图形?

python - 如何安排作业(Django、Python)

Python/Django -- "and"运算符和 "&"运算符之间有什么区别

java - 如何在异步线程中执行后台计算(在 REST Web 服务中)