diff options
| -rw-r--r-- | django/db/models/fields/__init__.py | 4 | ||||
| -rw-r--r-- | django/db/models/fields/related.py | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index ba4f8894e8..ddf3003d55 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -339,6 +339,10 @@ class Field(object): # TODO: This is just a temporary default during development. return forms.CharField(required=not self.blank, label=capfirst(self.verbose_name), initial=initial) + def value_from_object(self, obj): + "Returns the value of this field in the given model instance." + return getattr(obj, self.attname) + class AutoField(Field): empty_strings_allowed = False def __init__(self, *args, **kwargs): diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 8cc26c9ee4..433b5bde13 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -721,6 +721,10 @@ class ManyToManyField(RelatedField, Field): def set_attributes_from_rel(self): pass + def value_from_object(self, obj): + "Returns the value of this field in the given model instance." + return getattr(obj, self.attname).all() + def formfield(self, initial=None): return forms.MultipleChoiceField(choices=self.get_choices_default(), required=not self.blank, label=capfirst(self.verbose_name), initial=initial) |
