我试图弄清楚我是否可以choices
向使用美味派 API 的客户表示模型字段。
我有一个 django (1.4.1) 应用程序,我正在为其实现一个 django-tastypie (0.9.11) API。我有一个类似于以下的模型和模型资源:
class SomeModel(models.Model):
QUEUED, IN_PROCESS, COMPLETE = range(3)
STATUS_CHOICES = (
(QUEUED, 'Queued'),
(IN_PROCESS, 'In Process'),
(COMPLETE, 'Complete'),
)
name = models.CharFIeld(max_length=50)
status = models.IntegerField(choices=STATUS_CHOICES, default=QUEUED)
class SomeModelResource(ModelResource):
class Meta:
queryset = SomeModel.objects.all()
resource_name = 'some_model'
当我查看 API 中的对象时,名称和状态字段显示如下:
{
...
"objects":[
{
"name": "Some name 1",
"status": 0
},
{
"name": "Some name 2",
"status": 2
}]
}
我知道我可以SomeModelResource
使用 hydrate/dehydrate 方法进行更改,以显示状态的字符串值,如下所示,这对客户来说更有价值:
{
...
"objects":[
{
"name": "Some name 1",
"status": "Queued"
},
{
"name": "Some name 2",
"status": "Complete"
}]
}
但是,客户如何在不了解 SomeModel 内部工作原理的情况下知道状态字段的可用选择呢?
在系统中创建对象的客户端可能不会提供状态,因为默认值QUEUED
是可取的。但是正在编辑对象的客户端需要知道状态的可用选项以提供有效选项。
我希望将选项列在 SomeModelResource 的架构描述中,以便客户端可以在创建/编辑对象时内省可用的选项。但我只是不确定这是否是可口可乐的开箱即用的东西,或者我是否应该分叉可口派来引入该功能。
感谢您的任何反馈!