Почему приложение-анкета Django не распознает варианты ответов после развертывания с Apache и MySQL?

В настоящее время я пытаюсь развернуть свой проект Django через Apache и MySQL. Все приложения моего проекта работают хорошо, за исключением приложения "Анкеты". Я не могу записать ответы в базу данных и получаю ошибку, которая гласит [{'id': ['Выберите правильный выбор. Этот выбор не является одним из доступных вариантов.']}]. Я в замешательстве, потому что это приложение работало нормально, когда я запускал свой проект через локальный сервер и стандартную базу данных Django SQLite.

В моем приложении есть два опросника: один - доска настроения, где пользователь выбирает картинку, которая лучше всего отражает его чувства (я не пытаюсь записать фактическое изображение, только название картинки), а второй - Эдинбургская шкала послеродовой депрессии, это опросник с несколькими вариантами ответов, в котором нет картинок.

Может ли кто-нибудь дать мне совет, почему приложение не распознает варианты ответов?

Вот файл моих моделей:

User = settings.AUTH_USER_MODEL

class Questionnaire(models.Model): 
    name = models.CharField(max_length=255) 
    text = models.CharField(max_length=200)

    def __str__(self):
        return self.name

class Question(models.Model):
    text = models.CharField(max_length=200)
    questionnaire = models.ForeignKey(Questionnaire, on_delete=models.CASCADE, related_name='questions')
    def __str__(self):
        return self.text

class Answer(models.Model):
    question = models.ForeignKey(Question, models.SET_NULL, blank=True, null=True, related_name='answerlist')
    questionnaire = models.ForeignKey(Questionnaire, on_delete=models.CASCADE, related_name='answers', default='')
    text = models.CharField(max_length=200)
    image = models.CharField(null=True, max_length=20)
    image_location = models.CharField(null=True, max_length=20)
    
    def __str__(self):
        return self.text
 
class Response(models.Model):
    user = models.ForeignKey(User, on_delete = models.CASCADE) 
    date = models.DateTimeField(auto_now_add=True)
    question = models.ForeignKey(Question, on_delete = models.CASCADE)
    answer = models.ForeignKey(Answer, on_delete = models.CASCADE)
    def __str__(self):
        return '%s - %s - %s - %s' % (self.user, self.question, self.answer, self.date)

Вот мой файл представлений:

def questionnaire_index(request):

    questionnaires = Questionnaire.objects.all()

    context = {
         "questionnaires": questionnaires,
    }

    return render(request, 'questionnaire_index.html', context=context)


from django.forms import ModelForm
class ResponseForm(ModelForm):
    class Meta:
        model = Response
        fields = ['question', 'answer']
    
    def __init__(self, *args, user=None, **kwargs):
        self.user = user
        super().__init__(*args, **kwargs)

    def save(self, commit=True):
        response = super().save(commit=False)
        response.user = self.user
        return response.save()


def take_questionnaire_fs(request, questionnaire_id):

    ResponseFormSet = modelformset_factory(Response, form=ResponseForm, extra=0)
    if request.method == 'POST':
        formset = ResponseFormSet(request.POST or None, request.FILES, form_kwargs={'user': request.user})
        if formset.is_valid():
  
            print("Formset is valid")
            formset.save()
            return HttpResponseRedirect(reverse ('questionnaires:questionnaire_index'))
   
        else:
            print("Formset is NOT valid")
            print(formset.errors)
            print(formset.non_form_errors())
        

    questionnaire = Questionnaire.objects.get(id=questionnaire_id)
    questions = Question.objects.filter(questionnaire_id=questionnaire_id)
    answers = Answer.objects.filter(questionnaire_id=questionnaire_id)
    


    return render(request, 'questionnaires/questionnaire_lec.html', {
        'questions': questions,
        'answers': answers,
        'questionnaire': questionnaire,
        })

Мой HTML файл:

А вот мой файл URLs:

app_name = "questionnaires"

urlpatterns = [
    path('', views.questionnaire_index, name='questionnaire_index'),
    path('take-questionnaire-fs/<int:questionnaire_id>/', views.take_questionnaire_fs,  name='take-questionnaire'),
]
 
Вернуться на верх