有没有人有一个工作示例,说明如何通过 Pootle 的基于Tastypie的 REST API创建和更新Pootle项目及其模板字符串?我真的很想看到一个最小的,优雅的方式来做到这一点,例如,Slumber。
我的案例:我想从我的 Web 应用程序创建几个 Pootle 项目。您可以将每个这样的项目视为对应于 Web 服务中的文章集合中的一篇文章。对于这些项目中的每一个,我都需要能够
- 最初使用提取的(模板)字符串列表(通过 API)创建它,
- 提供实际翻译(人工,通过 Pootle 的 Web 界面 [不是问题]),
- 通过 API 检索翻译,最好是作为 PO 文件,以及
- 更新可翻译字符串集(通过 API),以便人类可以执行更多翻译。
我已经阅读了 Pootle 的词汇表、API 定义、它的 API 使用说明、Tastypie 文档和Slumber 文档,但我觉得我缺少了一部分。例如,Tastypie 提供了很好的选项来指定请求 URL 中的过滤参数,但我觉得我必须检索整个项目列表才能在应用程序中搜索正确的项目,这让我想知道其他人如何使用 API .
以下代码正确创建了一个新项目:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import slumber
api = slumber.API('http://localhost:8000/api/v1/', auth=('admin', 'admin'))
project_data = {
'code': 'test01',
'fullname': 'Test #01',
'description': 'Another test.',
'source_language': '/api/v1/languages/2/',
'translation_projects': [],
}
new_project = api.projects.post(project_data)
并new_project
指以下字典:
{'backlink': 'http://localhost:8000/projects/test01/',
'checkstyle': 'standard',
'code': 'test01',
'description': '<p>Another test.</p>',
'fullname': 'Test #01',
'ignoredfiles': u'',
'localfiletype': 'po',
'resource_uri': '/api/v1/projects/10/',
'source_language': '/api/v1/languages/2/',
'translation_projects': [],
'treestyle': 'auto'}
例如,鉴于我保留code
了以后的值。id
检索项目(即10
,从)最有效的方法是resource_uri
什么?我想要这样做的原因是为了以后的请求,例如:
api.projects(10).get()