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 instance = super().create( name=kwargs.get("name"), passing_score=kwargs.get("passing_score"), category=category, created_by=kwargs.get("user") ) for question in questions: question_instance = Question.objects.create( name=question["name"], description=question.get("description", ""), test=instance ) for answer in question["answers"]: Answer.objects.create( description=answer["description"], is_correct=answer.get("is_correct", False), question=question_instance ) return instance