def changelist_view(self, *args, **kwargs):
        try:
            singleton = self.model.objects.get()
        except self.model.MultipleObjectsReturned:
            return super(SingletonAdmin, self).changelist_view(*args, **kwargs)
        except self.model.DoesNotExist:
            return redirect(admin_url(self.model, "add"))
        return redirect(admin_url(self.model, "change", singleton.id))
Redirect to the add view if no records exist or the change
dataset/ETHPy150Open stephenmcd/mezzanine/mezzanine/utils/admin.py/SingletonAdmin.changelist_view