diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py
index fb5acb5..d9f2e0b 100644
--- a/django/contrib/admin/widgets.py
+++ b/django/contrib/admin/widgets.py
@@ -148,8 +148,15 @@ class ForeignKeyRawIdWidget(forms.TextInput):
 
     def label_for_value(self, value):
         key = self.rel.get_related_field().name
-        obj = self.rel.to._default_manager.get(**{key: value})
-        return '&nbsp;<strong>%s</strong>' % escape(truncate_words(obj, 14))
+
+        # Our value will not be valid if the user enters incorrect data (i.e.
+        # non-existent pk or a non-integer value). Normal form validation will
+        # handle this as long as we don't raise an exception here:
+        try:
+            obj = self.rel.to._default_manager.get(**{key: value})
+            return '&nbsp;<strong>%s</strong>' % escape(truncate_words(obj, 14))
+        except (ValueError, self.rel.to.DoesNotExist):
+            return ""
 
 class ManyToManyRawIdWidget(ForeignKeyRawIdWidget):
     """

