Couple of comments. The lack of tests would personally keep me from using this library, it's a pretty simple setup and relatively easy to test so it shouldn't be too hard. Also keep in mind that hitting the database for something like an AB test isn't going to perform very well at large scale. Finally, you're reimplementing a built in Django feature with your get_or_create_* functions. Just call Model.objects.get_or_create(...) no reason to rebuild that particular wheel.
Thanks a lot for the comments. Adding tests was in my todo list. Maybe I could use redis for storing the AB tests?
I have implemented the changes related to your comment using django's built get_or_create function. Thanks