Update metadata Move methods attrs to class attr

Move `attr` `methods` to class attribute for rewrite convenience
This commit is contained in:
老广 2019-05-16 13:52:19 +08:00 committed by GitHub
parent 15e044b231
commit c694d799fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -57,6 +57,12 @@ class SimpleMetadata(BaseMetadata):
serializers.DictField: 'nested object', serializers.DictField: 'nested object',
serializers.Serializer: 'nested object', serializers.Serializer: 'nested object',
}) })
methods = {"PUT", "POST"}
attrs = [
'read_only', 'label', 'help_text',
'min_length', 'max_length',
'min_value', 'max_value',
]
def determine_metadata(self, request, view): def determine_metadata(self, request, view):
metadata = OrderedDict() metadata = OrderedDict()
@ -76,7 +82,7 @@ class SimpleMetadata(BaseMetadata):
the fields that are accepted for 'PUT' and 'POST' methods. the fields that are accepted for 'PUT' and 'POST' methods.
""" """
actions = {} actions = {}
for method in {'PUT', 'POST'} & set(view.allowed_methods): for method in self.methods & set(view.allowed_methods):
view.request = clone_request(request, method) view.request = clone_request(request, method)
try: try:
# Test global permissions # Test global permissions
@ -121,13 +127,7 @@ class SimpleMetadata(BaseMetadata):
field_info['type'] = self.label_lookup[field] field_info['type'] = self.label_lookup[field]
field_info['required'] = getattr(field, 'required', False) field_info['required'] = getattr(field, 'required', False)
attrs = [ for attr in self.attrs:
'read_only', 'label', 'help_text',
'min_length', 'max_length',
'min_value', 'max_value'
]
for attr in attrs:
value = getattr(field, attr, None) value = getattr(field, attr, None)
if value is not None and value != '': if value is not None and value != '':
field_info[attr] = force_text(value, strings_only=True) field_info[attr] = force_text(value, strings_only=True)