diff options
| author | Tom Christie | 2013-05-18 07:16:12 -0700 |
|---|---|---|
| committer | Tom Christie | 2013-05-18 07:16:12 -0700 |
| commit | a2e2b0abdad05975036c8478d86bd30b13bc83c2 (patch) | |
| tree | 3c56894286b3942db433b1c4b8e3efcf9315677e /rest_framework/relations.py | |
| parent | ea9a3d88bce5507af753a79b259e6bd8e53a9059 (diff) | |
| parent | 7dca0e68591569c2838e383f15f690f5891509b1 (diff) | |
| download | django-rest-framework-a2e2b0abdad05975036c8478d86bd30b13bc83c2.tar.bz2 | |
Merge pull request #857 from pyriku/675-empty-label-related-field
Display an empty label into related fields if it isn't required
Diffstat (limited to 'rest_framework/relations.py')
| -rw-r--r-- | rest_framework/relations.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/rest_framework/relations.py b/rest_framework/relations.py index 884b954c..3aaf6648 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -8,6 +8,7 @@ from __future__ import unicode_literals from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.core.urlresolvers import resolve, get_script_prefix, NoReverseMatch from django import forms +from django.db.models.fields import BLANK_CHOICE_DASH from django.forms import widgets from django.forms.models import ModelChoiceIterator from django.utils.translation import ugettext_lazy as _ @@ -47,7 +48,7 @@ class RelatedField(WritableField): DeprecationWarning, stacklevel=2) kwargs['required'] = not kwargs.pop('null') - self.queryset = kwargs.pop('queryset', None) + queryset = kwargs.pop('queryset', None) self.many = kwargs.pop('many', self.many) if self.many: self.widget = self.many_widget @@ -56,6 +57,11 @@ class RelatedField(WritableField): kwargs['read_only'] = kwargs.pop('read_only', self.read_only) super(RelatedField, self).__init__(*args, **kwargs) + if not self.required: + self.empty_label = BLANK_CHOICE_DASH[0][1] + + self.queryset = queryset + def initialize(self, parent, field_name): super(RelatedField, self).initialize(parent, field_name) if self.queryset is None and not self.read_only: |
