Aman используйте PostgreSQL и JSONField, там можно хранить поля и всю необходимую инфу для генерации поля. Класс поля можно получить из строки ('CharField', 'IntegerField'... и т.д.) с помощью getattr и модуля django.db.models. field = field_class(**field_kwargs). Как-то так.
А для создания форм можно использовать
formtools, очень полезная штука, туда можно и формы и формсеты ставлять.