Copy attribute's DRF field kwargs before use (#36098)

Without it we get parameters from previous calls to
Attribute.get_kind().
This commit is contained in:
Benjamin Dauvergne 2019-09-13 11:14:41 +02:00
parent 6a3a1c3ebe
commit b7b0b93e7a
2 changed files with 4 additions and 1 deletions

View File

@ -181,7 +181,7 @@ class Attribute(models.Model):
kind = self.get_kind()
field_class = kind['rest_framework_field_class']
base_kwargs = kind.get('rest_framework_field_kwargs') or {}
base_kwargs = (kind.get('rest_framework_field_kwargs') or {}).copy()
base_kwargs.update({
'source': 'attributes.%s' % self.name,
'required': self.required,

View File

@ -1373,3 +1373,6 @@ def test_api_user_required_drf_attribute(settings, app, admin, simple_user):
params=payload, headers=headers, status=400)
assert resp.json['result'] == 0
assert resp.json['errors'] == {'prefered_color': ["This field may not be blank."]}
Attribute.objects.filter(name='prefered_color').update(required=False)
resp = app.put_json('/api/users/{}/'.format(simple_user.uuid), params=payload, headers=headers, status=200)