Django测试视图
我是Django的新手,我想做一个测验应用程序,但我遇到了问题。我创建了3个模型(测验、问题、选择)。我想写一个函数,返回具有相同测验标题的问题 我试过这个 视图.pyDjango测试视图,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
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
?