from django.db.models import Manager from django.apps import apps from django.conf import settings from categories.models import Category class TestManager(Manager): def create( self, *, category=None, questions=[], **kwargs ): Question = apps.get_model("questions", "Question") Answer = apps.get_model("answers", "Answer") category = Category.objects.get_or_create( name=category["name"] ) instance = super().create( name=kwargs.get("name"), passing_score=kwargs.get("passing_score"), category=category[0] ) # import pdb;pdb.set_trace() for question in questions: question_instance = Question.objects.create( name=question["name"], description=question["description"], test=instance ) for answer in question["answers"]: # import pdb; # pdb.set_trace() Answer.objects.create( description=answer["description"], is_correct=answer["is_correct"], question=question_instance ) return instance