I think it's easiest to handle Serbian Cyrillic (official) and Serbian Latin as two different 'languages'. Than you get all the benefits of the Django framework and its internationalization and localization machinery.
locale name: sr
and sr_Latn
.
UPDATE
Above takes care of strings in models, views, forms and templates. But you need to translate the database values.
If you can automate your translation (no or little exceptions) you can use a custom template filter. But if you want your editors to be able to correct not foreseen exceptions, than you have to create database fields to store the translation. Like you would in any multiple language project. There are many model structures and apps to do this. It all depends on your project needs.