Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django测试视图_Django_Django Models_Django Views - Fatal编程技术网

Django测试视图

Django测试视图,django,django-models,django-views,Django,Django Models,Django Views,我是Django的新手,我想做一个测验应用程序,但我遇到了问题。我创建了3个模型(测验、问题、选择)。我想写一个函数,返回具有相同测验标题的问题 我试过这个 视图.py def detail(request): sets = Quiz.objects.all() question = Question.objects.filter(sets.title) return render(request,'App/appdetail.html',{'question':ques

我是Django的新手,我想做一个测验应用程序,但我遇到了问题。我创建了3个模型(测验、问题、选择)。我想写一个函数,返回具有相同测验标题的问题

我试过这个

视图.py

def detail(request):
    sets = Quiz.objects.all()
    question = Question.objects.filter(sets.title)
    return render(request,'App/appdetail.html',{'question':question})
class Quiz(models.Model):
    title = models.CharField(max_length=20)
    description = models.CharField(max_length=100)

    def __str__(self):
        return self.title

class Question(models.Model):
    set = models.ForeignKey(Quiz,on_delete=models.CASCADE)
    question_txt = models.CharField(max_length=100)

    def __str__(self):
        return self.question_txt

class Choice(models.Model):
    question = models.ForeignKey(Question,on_delete=models.CASCADE)
    choice_txt = models.CharField(max_length=20)
    boolean = models.BooleanField(default=False)

    def __str__(self):
        return self.choice_txt
型号.py

def detail(request):
    sets = Quiz.objects.all()
    question = Question.objects.filter(sets.title)
    return render(request,'App/appdetail.html',{'question':question})
class Quiz(models.Model):
    title = models.CharField(max_length=20)
    description = models.CharField(max_length=100)

    def __str__(self):
        return self.title

class Question(models.Model):
    set = models.ForeignKey(Quiz,on_delete=models.CASCADE)
    question_txt = models.CharField(max_length=100)

    def __str__(self):
        return self.question_txt

class Choice(models.Model):
    question = models.ForeignKey(Question,on_delete=models.CASCADE)
    choice_txt = models.CharField(max_length=20)
    boolean = models.BooleanField(default=False)

    def __str__(self):
        return self.choice_txt
错误消息


您可以通过在
问题
模型中的测验外键
上筛选问题,获得具有相同测验标题的所有问题

question = Question.objects.filter(set__title='your_quiz_title')
您可以这样尝试:

def detail(request,pk):
    quiz = get_object_or_404(Quiz,pk=pk)
    questions = quiz.question_set.all()
    return render(request,'App/appdetail.html',{'questions':questions,'quiz':quiz})

@Swapnil Mangaonker让我知道这是否对你有效。嗨,Astik,它有效,但不是我想要的方式。我用不同的名字制作了许多测验。我已经创建了一个索引页,其中显示了所有的测验标题。点击该测验标题后,我想显示所有具有相同测验标题的问题。是的,上面的代码可以正常工作。您只需要将测验标题作为参数从url传递给方法。您是否运行了
makemigrations
migrate