mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-02 19:40:13 +03:00
Removed unused code, cleaned up field names
This commit is contained in:
parent
ff55b71b83
commit
f85d891238
|
@ -72,18 +72,6 @@ def readable_date_formats(formats):
|
||||||
return humanize_strptime(format)
|
return humanize_strptime(format)
|
||||||
|
|
||||||
|
|
||||||
def humanize_form_fields(form):
|
|
||||||
"""Return a humanized description of all the fields in a form.
|
|
||||||
|
|
||||||
:param form: A Django form.
|
|
||||||
:return: A dictionary of {field_label: humanized description}
|
|
||||||
|
|
||||||
"""
|
|
||||||
fields = SortedDict([(name, humanize_field(field))
|
|
||||||
for name, field in form.fields.iteritems()])
|
|
||||||
return fields
|
|
||||||
|
|
||||||
|
|
||||||
def readable_time_formats(formats):
|
def readable_time_formats(formats):
|
||||||
format = ', '.join(formats).replace(ISO_8601, 'hh:mm[:ss[.uuuuuu]]')
|
format = ', '.join(formats).replace(ISO_8601, 'hh:mm[:ss[.uuuuuu]]')
|
||||||
return humanize_strptime(format)
|
return humanize_strptime(format)
|
||||||
|
@ -204,9 +192,10 @@ class Field(object):
|
||||||
@property
|
@property
|
||||||
def humanized(self):
|
def humanized(self):
|
||||||
humanized = {
|
humanized = {
|
||||||
'type': self.type_name,
|
|
||||||
'required': getattr(self, 'required', False),
|
'required': getattr(self, 'required', False),
|
||||||
}
|
}
|
||||||
|
if self.type_name is not None:
|
||||||
|
humanized['type'] = self.type_name.replace('Field', '')
|
||||||
optional_attrs = ['read_only', 'help_text', 'label',
|
optional_attrs = ['read_only', 'help_text', 'label',
|
||||||
'min_length', 'max_length']
|
'min_length', 'max_length']
|
||||||
for attr in optional_attrs:
|
for attr in optional_attrs:
|
||||||
|
|
|
@ -8,14 +8,13 @@ from decimal import Decimal
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
from django import forms
|
|
||||||
from django.core import validators
|
from django.core import validators
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.utils.datastructures import SortedDict
|
from django.utils.datastructures import SortedDict
|
||||||
|
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from rest_framework.fields import Field, CharField
|
from rest_framework.fields import Field, CharField, IntegerField
|
||||||
from rest_framework.serializers import Serializer
|
from rest_framework.serializers import Serializer
|
||||||
from rest_framework.tests.models import RESTFrameworkModel
|
from rest_framework.tests.models import RESTFrameworkModel
|
||||||
|
|
||||||
|
@ -827,16 +826,21 @@ class URLFieldTests(TestCase):
|
||||||
class HumanizedField(TestCase):
|
class HumanizedField(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.required_field = Field()
|
self.required_field = Field()
|
||||||
|
self.required_field.type_name = 'IntegerField'
|
||||||
self.required_field.label = uuid4().hex
|
self.required_field.label = uuid4().hex
|
||||||
self.required_field.required = True
|
self.required_field.required = True
|
||||||
|
|
||||||
self.optional_field = Field()
|
self.optional_field = Field()
|
||||||
|
self.optional_field.type_name = 'CharField'
|
||||||
self.optional_field.label = uuid4().hex
|
self.optional_field.label = uuid4().hex
|
||||||
self.optional_field.required = False
|
self.optional_field.required = False
|
||||||
|
|
||||||
|
self.integer_field = IntegerField()
|
||||||
|
self.char_field = CharField()
|
||||||
|
|
||||||
def test_type(self):
|
def test_type(self):
|
||||||
for field in (self.required_field, self.optional_field):
|
self.assertEqual(self.char_field.humanized['type'], 'Char')
|
||||||
self.assertEqual(field.humanized['type'], field.type_name)
|
self.assertEqual(self.integer_field.humanized['type'], 'Integer')
|
||||||
|
|
||||||
def test_required(self):
|
def test_required(self):
|
||||||
self.assertEqual(self.required_field.humanized['required'], True)
|
self.assertEqual(self.required_field.humanized['required'], True)
|
||||||
|
@ -863,11 +867,11 @@ class HumanizedSerializer(TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'field1': {u'required': True,
|
'field1': {u'required': True,
|
||||||
u'max_length': 3,
|
u'max_length': 3,
|
||||||
u'type': u'CharField',
|
u'type': u'Char',
|
||||||
u'read_only': False},
|
u'read_only': False},
|
||||||
'field2': {u'required': False,
|
'field2': {u'required': False,
|
||||||
u'max_length': 10,
|
u'max_length': 10,
|
||||||
u'type': u'CharField',
|
u'type': u'Char',
|
||||||
u'read_only': False}}
|
u'read_only': False}}
|
||||||
self.assertEqual(set(expected.keys()), set(humanized.keys()))
|
self.assertEqual(set(expected.keys()), set(humanized.keys()))
|
||||||
for k, v in humanized.iteritems():
|
for k, v in humanized.iteritems():
|
||||||
|
|
|
@ -130,12 +130,12 @@ class TestRootView(TestCase):
|
||||||
'max_length': 100,
|
'max_length': 100,
|
||||||
'read_only': False,
|
'read_only': False,
|
||||||
'required': True,
|
'required': True,
|
||||||
'type': 'CharField',
|
'type': 'Char',
|
||||||
},
|
},
|
||||||
'id': {
|
'id': {
|
||||||
'read_only': True,
|
'read_only': True,
|
||||||
'required': False,
|
'required': False,
|
||||||
'type': 'IntegerField',
|
'type': 'Integer',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
@ -264,12 +264,12 @@ class TestInstanceView(TestCase):
|
||||||
'max_length': 100,
|
'max_length': 100,
|
||||||
'read_only': False,
|
'read_only': False,
|
||||||
'required': True,
|
'required': True,
|
||||||
'type': 'CharField',
|
'type': 'Char',
|
||||||
},
|
},
|
||||||
'id': {
|
'id': {
|
||||||
'read_only': True,
|
'read_only': True,
|
||||||
'required': False,
|
'required': False,
|
||||||
'type': 'IntegerField',
|
'type': 'Integer',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
|
|
@ -9,7 +9,6 @@ from django.views.decorators.csrf import csrf_exempt
|
||||||
|
|
||||||
from rest_framework import status, exceptions
|
from rest_framework import status, exceptions
|
||||||
from rest_framework.compat import View
|
from rest_framework.compat import View
|
||||||
from rest_framework.fields import humanize_form_fields
|
|
||||||
from rest_framework.request import clone_request, Request
|
from rest_framework.request import clone_request, Request
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.settings import api_settings
|
from rest_framework.settings import api_settings
|
||||||
|
@ -62,7 +61,6 @@ class APIView(View):
|
||||||
'parses': [parser.media_type for parser in self.parser_classes],
|
'parses': [parser.media_type for parser in self.parser_classes],
|
||||||
}
|
}
|
||||||
content['actions'] = self.action_metadata(request)
|
content['actions'] = self.action_metadata(request)
|
||||||
|
|
||||||
return content
|
return content
|
||||||
|
|
||||||
def action_metadata(self, request):
|
def action_metadata(self, request):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user