我看到'對不起,尚未實現。請附上「?format = json」至 您的網址。'。我需要總是追加字符串「?format = json」。默認情況下,我可以在JSON中輸出 輸出嗎?Django-tastypie。默認輸出爲JSON到瀏覽器
問候, 維塔利
我看到'對不起,尚未實現。請附上「?format = json」至 您的網址。'。我需要總是追加字符串「?format = json」。默認情況下,我可以在JSON中輸出 輸出嗎?Django-tastypie。默認輸出爲JSON到瀏覽器
問候, 維塔利
從tastypie cookbook,爲了改變默認的格式,你需要重寫determine_format()方法,在你的ModelResource:
class MyResource(ModelResource):
....
def determine_format(self, request):
return 'application/json'
上面的鏈接證明確定輸出格式的替代方法。
此外,我不認爲一個有效的答案本質上是「你不需要這個」。
編輯
看來GregM的答案很可能是(我沒有測試它)是最正確的用TastyPie,as per documentation的新版本把你的settings.py
以下將限制序列輸出到JSON。
TASTYPIE_DEFAULT_FORMATS = ['json']
要檢查/測試你的REST API,使用REST客戶端,而不是瀏覽器,最好是一個知道如何漂亮打印JSON。我使用谷歌瀏覽器的郵差插件。
如果你想在命令行漂亮的JSON:
curl https://api.twitter.com/1.1/search/tweets.json | python -m json.tool
Tasytpie已設置爲 '應用/ JSON的' 默認值。但是這被瀏覽器請求覆蓋。
據Tastypie,默認是由請求頭重寫接受和您的格式規範GET即。 ?format = json。當您從瀏覽器發送請求時,如果你看到的HTTP請求頭中發送,它有點像 -
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
的應用程序/ XML覆蓋在Tastypie資源的默認。因此,要麼你可以將瀏覽器標題設置爲'application/json'(壞主意),或者你只是在GET中指定。
如果您使用CURL命中相同的API網址,您將看到JSON輸出,但未指定GET。
由於tastypie 0.9.13的,如果你不需要XML的支持,你可以在全局設置TASTYPIE_DEFAULT_FORMATS
禁用它只是['json']
在settings.py
文件。然後,請求應該默認爲JSON。
這很好,謝謝! – 2014-01-15 21:18:40
其中一個我希望我可以給一個以上的☝️rec的東西。 – 2016-12-29 22:19:47
我已經測試了將TASTYPIE_DEFAULT_FORMATS設置爲['json'],但是它在瀏覽器中查看API時並不阻止「Sorry not implemented yet」消息。
我上午能夠做出警告,迫使在中間件「接受」頭「應用/ JSON」走開:
class TastyJSONMiddleware(object):
"""
A Django middleware to make the Tastypie API always output in JSON format
instead of telling browsers that they haven't yet implemented text/html or
whatever.
WARNING: This includes a hardcoded url path for /api/. This is not 'DRY'
because it means you have to edit two places if you ever move your API
path.
"""
api_prefix = '/api/'
def process_request(self, request):
if request.path.startswith(self.api_prefix):
request.META['HTTP_ACCEPT'] = 'application/json'
'TASTYPIE_DEFAULT_FORMATS'規則! – ducin 2013-08-06 22:11:49
+1這應該是公認的答案! – slackmart 2013-12-13 18:50:43
如果您希望JSON成爲默認值,並且在需要時支持XML,該怎麼辦? – Richard 2015-04-04 15:13:05