diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index cc5025af84..796c4d23c4 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -916,7 +916,7 @@ class Field(RegisterLookupMixin):
             return [self.from_db_value]
         return []
 
-    @property
+    @cached_property
     def unique(self):
         return self._unique or self.primary_key