我想弄清楚我是否可以將模型字段choices
表示給使用tastypie API的客戶端。在django-tastypie中,可以選擇以模式顯示嗎?
我有一個django(1.4.1)應用程序,我正在實現一個django-tastypie(0.9.11)API。我有類似如下的型號和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"
}]
}
但是,客戶如何知道可用的cho不知道SomeModel的內部工作情況,爲狀態字段添加冰點?
客戶端創建系統中的對象可能不會提供狀態,因爲默認值QUEUED
是可取的。但客戶端編輯對象需要知道狀態的可用選項以提供有效的選項。
我想要在SomeModelResource的模式描述中列出選項,這樣客戶端可以在創建/編輯對象時反省可用選項。但我只是不確定這是否是開箱即用的,或者我應該派tastypie來介紹這種能力。
感謝您的任何反饋!
不錯的一個... Tastypie應該默認做到這一點! – jrvidotti
我的資源根本沒有調用該方法 – Harry