Почему это сообщение об ошибке ModuleNotFoundError: ни один модуль с именем 'betterforms' не отображается и как его избежать? - PullRequest
0 голосов
/ 29 января 2019

Я построил эту модель и хотел бы, чтобы ее формы были на одной странице с использованием MultiModelForm, но я получаю это сообщение об ошибке:

ModuleNotFoundError: Нет модуля с именем 'bestforms'

        from django.db import models
        from home.choices import *

        # Create your models here.

        class Topic(models.Model):
            topic_name              = models.IntegerField(
                                    choices = question_topic_name_choices, default = 1)
            def __unicode(self):
                return u'%s' % self.topic_name

        class Image (models.Model):
            image_file              = models.ImageField()

            def __unicode(self):
                return u'%s' % self.image_file

        class Question(models.Model):
            questions_type          = models. IntegerField(
                                    choices = questions_type_choices, default = 1)
            question_topic          = models.ForeignKey(    'Topic',
                                            on_delete=models.CASCADE,
                                            blank=True,
                                            null=True)
            question_description    = models.TextField()
            question_answer         = models.ForeignKey(    'Answer',
                                            on_delete=models.CASCADE,
                                            blank=True,
                                            null=True)
            question_image          = models.ForeignKey(    'Image',
                                            on_delete=models.CASCADE,
                                            blank=True,
                                            null=True)

            def __unicode(self):
                return u'%s' % self.question_description

        class Answer(models.Model):
            answer_description      = models.TextField()
            answer_image            = models.ForeignKey(    'Image',
                                            on_delete=models.CASCADE,
                                            blank=True,
                                            null=True)

            def __unicode(self):
                return u'%s' % self.answer_description

Это Forms.py

        from django import forms
        from .models import Topic, Image, Question, Answer
        from betterforms.multiform import MultiModelForm

        class TopicForm(forms.ModelForm):
            topic_name  =   forms.ModelMultipleChoiceField(
                            queryset    =   Topic.objects.all(),
                            widget      =   form.SelectMultiple(
                            attrs       =   {'class': ''}
                            ))
            class Meta:
                model   =   models.Topic
                fields  =   ['topic_name']

        class QuestionForm(forms.ModelForm):
            topic_name  =   forms.ModelChoiceField(
                            queryset    =   Topic.objects.all(),
                            widget      =   form.Select(
                            attrs       =   {'class': ''}
                            ))
            class Meta:
                model   =   models.Question
                fields  =   ['questions_type']
        class QuizMultiForm(MultiModelForm):
            form_classes    =   {
                        'topics'    :   TopicForm,
                        'questions' :   QuestionForm
            }
            def save(self, commit=True):
                objects = super(QuizMultiForm, self).save(commit=False)

                if commit:
                    topics = objects['topics']
                    topics.save()
                    questions = objects['quesitons']
                    questions.topics = objects['questions']
                return objects

Это views.py

        from django.shortcuts import render, render_to_response
        from django.http import HttpResponse, HttpResponseRedirect
        from .models import Topic, Image, Question, Answer
        from home.forms import QuizMultiForm
        from django.views.generic import CreateView

        class QuizView(CreateView):
            form_classes    =   QuizMultiForm
            template_name   =   'index.html'

Я не нашел решений на этом сайте об этой проблеме.

Я хотел бы использовать виджет RadioSelect, чтобы показать мои вопросы или нет на той же странице.Но я не знаю, как создать такую ​​вещь.Я был бы рад, если бы вы помогли и с этим.

...