mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-02 20:54:42 +03:00
#467 Added label and help_text to Field
This commit is contained in:
parent
3e3ede71d2
commit
9ae0ca1cae
|
@ -28,7 +28,7 @@ def is_simple_callable(obj):
|
||||||
return (
|
return (
|
||||||
(inspect.isfunction(obj) and not inspect.getargspec(obj)[0]) or
|
(inspect.isfunction(obj) and not inspect.getargspec(obj)[0]) or
|
||||||
(inspect.ismethod(obj) and len(inspect.getargspec(obj)[0]) <= 1)
|
(inspect.ismethod(obj) and len(inspect.getargspec(obj)[0]) <= 1)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class Field(object):
|
class Field(object):
|
||||||
|
@ -38,13 +38,15 @@ class Field(object):
|
||||||
_use_files = None
|
_use_files = None
|
||||||
form_field_class = forms.CharField
|
form_field_class = forms.CharField
|
||||||
|
|
||||||
def __init__(self, source=None):
|
def __init__(self, source=None, label=None, help_text=None):
|
||||||
self.parent = None
|
self.parent = None
|
||||||
|
|
||||||
self.creation_counter = Field.creation_counter
|
self.creation_counter = Field.creation_counter
|
||||||
Field.creation_counter += 1
|
Field.creation_counter += 1
|
||||||
|
|
||||||
self.source = source
|
self.source = source
|
||||||
|
self.label = label
|
||||||
|
self.help_text = help_text
|
||||||
|
|
||||||
def initialize(self, parent, field_name):
|
def initialize(self, parent, field_name):
|
||||||
"""
|
"""
|
||||||
|
@ -123,11 +125,11 @@ class WritableField(Field):
|
||||||
widget = widgets.TextInput
|
widget = widgets.TextInput
|
||||||
default = None
|
default = None
|
||||||
|
|
||||||
def __init__(self, source=None, read_only=False, required=None,
|
def __init__(self, source=None, label=None, help_text=None,
|
||||||
|
read_only=False, required=None,
|
||||||
validators=[], error_messages=None, widget=None,
|
validators=[], error_messages=None, widget=None,
|
||||||
default=None, blank=None):
|
default=None, blank=None):
|
||||||
|
super(WritableField, self).__init__(source=source, label=label, help_text=help_text)
|
||||||
super(WritableField, self).__init__(source=source)
|
|
||||||
|
|
||||||
self.read_only = read_only
|
self.read_only = read_only
|
||||||
if required is None:
|
if required is None:
|
||||||
|
@ -215,6 +217,7 @@ class ModelField(WritableField):
|
||||||
"""
|
"""
|
||||||
A generic field that can be used against an arbitrary model field.
|
A generic field that can be used against an arbitrary model field.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
try:
|
try:
|
||||||
self.model_field = kwargs.pop('model_field')
|
self.model_field = kwargs.pop('model_field')
|
||||||
|
@ -222,9 +225,9 @@ class ModelField(WritableField):
|
||||||
raise ValueError("ModelField requires 'model_field' kwarg")
|
raise ValueError("ModelField requires 'model_field' kwarg")
|
||||||
|
|
||||||
self.min_length = kwargs.pop('min_length',
|
self.min_length = kwargs.pop('min_length',
|
||||||
getattr(self.model_field, 'min_length', None))
|
getattr(self.model_field, 'min_length', None))
|
||||||
self.max_length = kwargs.pop('max_length',
|
self.max_length = kwargs.pop('max_length',
|
||||||
getattr(self.model_field, 'max_length', None))
|
getattr(self.model_field, 'max_length', None))
|
||||||
|
|
||||||
super(ModelField, self).__init__(*args, **kwargs)
|
super(ModelField, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
@ -434,7 +437,7 @@ class PrimaryKeyRelatedField(RelatedField):
|
||||||
# RelatedObject (reverse relationship)
|
# RelatedObject (reverse relationship)
|
||||||
obj = getattr(obj, self.source or field_name)
|
obj = getattr(obj, self.source or field_name)
|
||||||
return self.to_native(obj.pk)
|
return self.to_native(obj.pk)
|
||||||
# Forward relationship
|
# Forward relationship
|
||||||
return self.to_native(pk)
|
return self.to_native(pk)
|
||||||
|
|
||||||
|
|
||||||
|
@ -469,7 +472,7 @@ class ManyPrimaryKeyRelatedField(ManyRelatedField):
|
||||||
# RelatedManager (reverse relationship)
|
# RelatedManager (reverse relationship)
|
||||||
queryset = getattr(obj, self.source or field_name)
|
queryset = getattr(obj, self.source or field_name)
|
||||||
return [self.to_native(item.pk) for item in queryset.all()]
|
return [self.to_native(item.pk) for item in queryset.all()]
|
||||||
# Forward relationship
|
# Forward relationship
|
||||||
return [self.to_native(item.pk) for item in queryset.all()]
|
return [self.to_native(item.pk) for item in queryset.all()]
|
||||||
|
|
||||||
def from_native(self, data):
|
def from_native(self, data):
|
||||||
|
@ -913,7 +916,7 @@ class DateTimeField(WritableField):
|
||||||
# call stack.
|
# call stack.
|
||||||
warnings.warn(u"DateTimeField received a naive datetime (%s)"
|
warnings.warn(u"DateTimeField received a naive datetime (%s)"
|
||||||
u" while time zone support is active." % value,
|
u" while time zone support is active." % value,
|
||||||
RuntimeWarning)
|
RuntimeWarning)
|
||||||
default_timezone = timezone.get_default_timezone()
|
default_timezone = timezone.get_default_timezone()
|
||||||
value = timezone.make_aware(value, default_timezone)
|
value = timezone.make_aware(value, default_timezone)
|
||||||
return value
|
return value
|
||||||
|
|
|
@ -428,6 +428,12 @@ class ModelSerializer(Serializer):
|
||||||
if max_length:
|
if max_length:
|
||||||
kwargs['max_length'] = max_length
|
kwargs['max_length'] = max_length
|
||||||
|
|
||||||
|
if model_field.verbose_name:
|
||||||
|
kwargs['label'] = model_field.verbose_name
|
||||||
|
|
||||||
|
if model_field.help_text:
|
||||||
|
kwargs['help_text'] = model_field.help_text
|
||||||
|
|
||||||
field_mapping = {
|
field_mapping = {
|
||||||
models.FloatField: FloatField,
|
models.FloatField: FloatField,
|
||||||
models.IntegerField: IntegerField,
|
models.IntegerField: IntegerField,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user