It looks like get_preview_data() is called for every entry in settings.LANGUAGES, but it doesn't depend on the language. If get_preview_data() is non-trivial (e.g., hits the database, builds complex objects), this could be unnecessarily time-consuming. Maybe the preview data could be cached in an instance variable?