Django Test Client Method Override Header

You need to specify header as 'HTTP_X_HTTP_METHOD_OVERRIDE' instead of 'X_HTTP_METHOD_OVERRIDE' i.e. add HTTP_ at the beginning of the header.

header = {'HTTP_X_HTTP_METHOD_OVERRIDE': 'PUT'}
response = client.post('/model/1/', content_type="application/json", data=post_data_clean, **header)

From the Django documentation:

HTTP headers in the request are converted to META keys by converting
all characters to uppercase, replacing any hyphens with underscores
and adding an HTTP_ prefix to the name. So, for example, a header
called X-Bender would be mapped to the META key HTTP_X_BENDER.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)