私はchoices
、tastypie API を使用するクライアントにモデル フィールドを表すことができるかどうかを把握しようとしています。
django-tastypie (0.9.11) API を実装する django (1.4.1) アプリケーションがあります。次のような Model と ModelResource があります。
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
水和/脱水メソッドを変更して、次のようにステータスの文字列値を表示できることはわかっています。これは、クライアントにとってより価値があります。
{
...
"objects":[
{
"name": "Some name 1",
"status": "Queued"
},
{
"name": "Some name 2",
"status": "Complete"
}]
}
しかし、クライアントは、SomeModel の内部の仕組みを知らずに、ステータス フィールドで利用可能な選択肢をどのように知るのでしょうか?
システムでオブジェクトを作成しているクライアントは、デフォルト値QUEUED
が desirable であるため、ステータスを提供しない場合があります。ただし、オブジェクトを編集しているクライアントは、有効なオプションを提供するために、ステータスの利用可能なオプションを知る必要があります。
SomeModelResource のスキーマ記述に選択肢をリストして、クライアントがオブジェクトの作成/編集時に利用可能な選択肢を内省できるようにしたいと考えています。しかし、これがtastypieですぐに利用できるものなのか、それともtastypieをフォークして機能を導入する必要があるのか どうかはわかりません.
フィードバックをお寄せいただきありがとうございます。