gpt4 book ai didi

python - Django:获取所有对象并将其返回以查看

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:51 26 4
gpt4 key购买 nike

我是 python 和 Django 的新手,我也在寻找答案,但找不到 :(我的应用程序中有 3 个类。我的应用程序中的第一个类是考试、问题和答案。

模型.py

class Egzam(models.Model):
name = models.CharField(max_length=200, default='kolokwium ')
date = models.DateField('date publish')
code = models.CharField(max_length=200)

def __str__(self):
return str("%s %s" % (self.date, self.name))

class Question(models.Model):
egzam = models.ForeignKey(Egzam, on_delete=models.CASCADE)
name = models.CharField(max_length=200) # nazwa pytania

def __str__(self):
return self.name

class Answer(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
answer_text = models.CharField(max_length=200) #treść odpowiedzi
correct = models.BooleanField(default=False)

def __str__(self):
return self.answer_text

所以 Egzam 类可以处理很少的问题,而问题类可以处理很少的答案。我想要做的是在索引页面上列出所有考试,在我点击其中一个之后,我的应用程序应该打开新页面,我可以在其中看到该特定考试的所有问题和答案。而且我不知道如何将特定考试的所有问题和答案返回到一个 html。这是我的其余代码。

网址.py

app_name = 'kolos'
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('<int:pk>/', views.EgzamView.as_view(), name='view'),
]

View .py

class IndexView(generic.ListView):
template_name = 'kolos/index.html'
context_object_name = 'egzam_list'

def get_queryset(self):
return Egzam.objects.all()

class EgzamView(generic.DetailView):
model = Egzam
template_name = 'kolos/egzam.html'


def get_queryset(self):
return Answer.obects.filter()

最佳答案

你可以这样尝试:

在模板 kolos/egzam.html

{% for question in object.question_set.all %}
{{ question.name }}
{% for answer in question.answer_set.all %}
{{ answer.answer_text }}
{{ answer.correct }}
{% endfor %}
{% endfor %}

并从 EgzamView 中移除 get_queryset 方法。

请参阅Many to one关于反向查询如何工作的查询部分(使用 _set)。

关于python - Django:获取所有对象并将其返回以查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53584974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com