A couple things.

1. I think self.LANG_CHOICES needs to be defined in __init__() now because it could change, and as it is it would require a server restart to update.
2. It seems inefficient to call get_newsletter_languages when we are already calling get_language_choices. They both get their information from newsletters and so it's potentially 2 or 3 more cache hits per request than is required.