diff --git a/djblets/webapi/resources/base.py b/djblets/webapi/resources/base.py
index d240a53ffae889d328d20bb66652e5205199ad02..1f31948155f2d68f010ee53cdb589348d73ee81b 100644
--- a/djblets/webapi/resources/base.py
+++ b/djblets/webapi/resources/base.py
@@ -719,9 +719,33 @@ class WebAPIResource(object):
         return {
             'method': 'GET',
             'href': resource.get_href(obj, *args, **kwargs),
-            'title': six.text_type(obj),
+            'title': resource.get_object_title(obj, *args, **kwargs),
         }
 
+    def get_object_title(self, obj, request=None, *args, **kwargs):
+        """Return the object's title.
+
+        By default, this returns the object's unicode representation.
+
+        Args:
+            obj (object):
+                The object to serialize.
+
+            request (django.http.HttpRequest):
+                The current request.
+
+            *args (tuple):
+                Additional positional arguments.
+
+            **kwargs (dict):
+                Additional keyword arguments.
+
+        Returns:
+            unicode:
+            The object's title.
+        """
+        return six.text_type(obj)
+
     def serialize_object(self, obj, *args, **kwargs):
         """Serializes the object into a Python dictionary."""
         request = kwargs.get('request', None)
