簡體   English   中英

如何在Django測試客戶端中創建補丁/更新(即更新對象)請求?

[英]How to create a patch/update (i.e. update an object) request in Django test client?

我正在使用Django 1.5。 和django-tastypie

我正在測試一個用例,首先必須創建一個對象,然后通過rest api更新該對象。 例如

class FooTest(TestCase):
    fixtures = ['df_fixtures1.json']

    def setUp(self):
        print "SETTING UP?"
    def tearDown(self):
        print "Tear Down"
    def test_foo_delete(self):
          member1 = Client()
          member1.login(username='member1',password=test_password)
          response = member1.post('/fooapi/api/foo/?format=json', json_data, content_type="application/json") #**This creates the foo object**
          META =  {'X-HTTP-Method-Override':'PATCH'}
          response123 = member1.put(response['location'],
                        '{"isActive":0}', 
                       content_type="application/json", META = META    
                       ) **#This gives a 501**

第二個請求給出501錯誤。 在服務器端有一個def obj_update,即處理更新/補丁請求的方法。 使用REST API的Django客戶端更新對象的最佳方法是什么。

由於Django 1.6及以上版本提供了“ PATCH”方法,因此可以將其用作Django 1.5上的黑客工具

response123 = member1.put(response['location'],
                        data = data, 
                        content_type="application/json",
                        **{'REQUEST_METHOD':'PATCH'}
                       )

這會將方法從put更改為PATCH。 希望這對其他人有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM