from django.db.models import Manager from django.apps import apps from django.conf import settings from categories.models import Category class QuestionManager(Manager): def create( self, *, answers=[], name=None, test=None, description=None, **kwargs ): Answer = apps.get_model("answers", "Answer") instance = super().create( name=name, test=test, description=name, ) for answer in answers: Answer.objects.create( question=instance, description=answer["description"], is_correct=answer["is_correct"] ) return instance def addQuestionToExistingTest( self, *, answers=[], name=None, test=None, description=None, **kwargs ): Answer = apps.get_model("answers", "Answer") instance = super().create( name=name, test=test, description=name, ) for answer in answers: for a in answer["answers"]: Answer.objects.create( question=instance, description=a["description"], is_correct=a["is_correct"] ) return instance def EditQuestion( self, *, question_id=None, answers=[], name=None, description=None, **kwargs ): Answer = apps.get_model("answers", "Answer") instance = super().get( id=question_id ) instance.name = name instance.description = name actual_answers = instance.answers.all() for answer in actual_answers: answer.is_correct = False answer.save() for i in range(0, len(answers[0]["answers"])): actual_answer = actual_answers[i] new_answer = answers[0]["answers"][i] actual_answer.description = new_answer["description"] actual_answer.is_correct = new_answer["is_correct"] actual_answer.save() instance.save() return instance