mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-05-05 16:33:44 +03:00
Renamed unknown_form_fields
to allow_unknown_form_fields
This commit is contained in:
parent
167dce008c
commit
ec5badf739
|
@ -78,7 +78,7 @@ class FormResource(Resource):
|
||||||
This can be overridden by a :attr:`form` attribute on the :class:`views.View`.
|
This can be overridden by a :attr:`form` attribute on the :class:`views.View`.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
unknown_form_fields = False
|
allow_unknown_form_fields = False
|
||||||
"""
|
"""
|
||||||
Flag to check for unknown fields when validating a form. If set to false and
|
Flag to check for unknown fields when validating a form. If set to false and
|
||||||
we receive request data that is not expected by the form it raises an
|
we receive request data that is not expected by the form it raises an
|
||||||
|
@ -93,7 +93,7 @@ class FormResource(Resource):
|
||||||
Raises a :exc:`response.ErrorResponse` with status code 400 (Bad Request) on failure.
|
Raises a :exc:`response.ErrorResponse` with status code 400 (Bad Request) on failure.
|
||||||
|
|
||||||
Validation is standard form validation, with an additional constraint that *no extra unknown fields* may be supplied
|
Validation is standard form validation, with an additional constraint that *no extra unknown fields* may be supplied
|
||||||
if :attr:`self.unknown_form_fields` is ``False``.
|
if :attr:`self.allow_unknown_form_fields` is ``False``.
|
||||||
|
|
||||||
On failure the :exc:`response.ErrorResponse` content is a dict which may contain :obj:`'errors'` and :obj:`'field-errors'` keys.
|
On failure the :exc:`response.ErrorResponse` content is a dict which may contain :obj:`'errors'` and :obj:`'field-errors'` keys.
|
||||||
If the :obj:`'errors'` key exists it is a list of strings of non-field errors.
|
If the :obj:`'errors'` key exists it is a list of strings of non-field errors.
|
||||||
|
@ -141,7 +141,7 @@ class FormResource(Resource):
|
||||||
unknown_fields = unknown_fields - set(('csrfmiddlewaretoken', '_accept', '_method')) # TODO: Ugh.
|
unknown_fields = unknown_fields - set(('csrfmiddlewaretoken', '_accept', '_method')) # TODO: Ugh.
|
||||||
|
|
||||||
# Check using both regular validation, and our stricter no additional fields rule
|
# Check using both regular validation, and our stricter no additional fields rule
|
||||||
if bound_form.is_valid() and (self.unknown_form_fields or not unknown_fields):
|
if bound_form.is_valid() and (self.allow_unknown_form_fields or not unknown_fields):
|
||||||
# Validation succeeded...
|
# Validation succeeded...
|
||||||
cleaned_data = bound_form.cleaned_data
|
cleaned_data = bound_form.cleaned_data
|
||||||
|
|
||||||
|
@ -398,7 +398,7 @@ class ModelResource(FormResource):
|
||||||
"""
|
"""
|
||||||
model_fields = set(field.name for field in self.model._meta.fields)
|
model_fields = set(field.name for field in self.model._meta.fields)
|
||||||
|
|
||||||
if fields:
|
if model_fields:
|
||||||
return model_fields & set(as_tuple(self.fields))
|
return model_fields & set(as_tuple(self.fields))
|
||||||
|
|
||||||
return model_fields - set(as_tuple(self.exclude))
|
return model_fields - set(as_tuple(self.exclude))
|
||||||
|
|
|
@ -142,9 +142,9 @@ class TestFormValidation(TestCase):
|
||||||
"""If we set ``unknown_form_fields`` on the form resource, then don't
|
"""If we set ``unknown_form_fields`` on the form resource, then don't
|
||||||
raise errors on unexpected request data"""
|
raise errors on unexpected request data"""
|
||||||
content = {'qwerty': 'uiop', 'extra': 'extra'}
|
content = {'qwerty': 'uiop', 'extra': 'extra'}
|
||||||
validator.unknown_form_fields = True
|
validator.allow_unknown_form_fields = True
|
||||||
self.assertDictEqual({'qwerty': u'uiop'}, validator.validate_request(content, None), "Resource didn't accept unknown fields.")
|
self.assertDictEqual({'qwerty': u'uiop'}, validator.validate_request(content, None), "Resource didn't accept unknown fields.")
|
||||||
validator.unknown_form_fields = False
|
validator.allow_unknown_form_fields = False
|
||||||
|
|
||||||
def validation_does_not_require_extra_fields_if_explicitly_set(self, validator):
|
def validation_does_not_require_extra_fields_if_explicitly_set(self, validator):
|
||||||
"""If we include an allowed_extra_fields paramater on _validate, then do not fail if we do not have fields with those names."""
|
"""If we include an allowed_extra_fields paramater on _validate, then do not fail if we do not have fields with those names."""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user