diff options
| author | Justin Bronn <jbronn@gmail.com> | 2010-09-11 18:34:40 +0000 |
|---|---|---|
| committer | Justin Bronn <jbronn@gmail.com> | 2010-09-11 18:34:40 +0000 |
| commit | 9e04c3b7444ba136efa03896a67e46d2e7045e28 (patch) | |
| tree | d8a99ae8f007f8cc4e337cb725b341459c4f760a /django | |
| parent | fffe0a00a383f46fdfb8de44d56f8ae2e2ee09de (diff) | |
Fixed #13149 -- The admin `ForeignKeyRawIdWidget` now properly handles non-integer values. Thanks, Chris Adams.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13751 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/widgets.py | 6 | ||||
| -rw-r--r-- | django/forms/models.py | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index 134effc74e..2c7ac5c794 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -154,9 +154,9 @@ class ForeignKeyRawIdWidget(forms.TextInput): key = self.rel.get_related_field().name try: obj = self.rel.to._default_manager.using(self.db).get(**{key: value}) - except self.rel.to.DoesNotExist: + return ' <strong>%s</strong>' % escape(truncate_words(obj, 14)) + except (ValueError, self.rel.to.DoesNotExist): return '' - return ' <strong>%s</strong>' % escape(truncate_words(obj, 14)) class ManyToManyRawIdWidget(ForeignKeyRawIdWidget): """ @@ -169,7 +169,7 @@ class ManyToManyRawIdWidget(ForeignKeyRawIdWidget): def render(self, name, value, attrs=None): attrs['class'] = 'vManyToManyRawIdAdminField' if value: - value = ','.join([str(v) for v in value]) + value = ','.join([force_unicode(v) for v in value]) else: value = '' return super(ManyToManyRawIdWidget, self).render(name, value, attrs) diff --git a/django/forms/models.py b/django/forms/models.py index 607ac455fe..cf465ad30c 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -1006,7 +1006,7 @@ class ModelChoiceField(ChoiceField): try: key = self.to_field_name or 'pk' value = self.queryset.get(**{key: value}) - except self.queryset.model.DoesNotExist: + except (ValueError, self.queryset.model.DoesNotExist): raise ValidationError(self.error_messages['invalid_choice']) return value |
