【发布时间】:2020-12-26 21:09:09
【问题描述】:
大家好,我正在使用 Django python 制作英语教育测试系统。
系统显示一篇文章和几个(未修复)关于文章的问题。
并且每个问题都有可选项目,其中数字不固定。
例如
{ ---------- 文章 -------------- }
{ ---------- 问题 --------------}
{ ---------- 项目 ------------------}
{ ---------- 项目 ------------------}
{ ---------- 项目 ------------------}
{ ---------- 问题 --------------}
{ ---------- 项目 ------------------}
{ ---------- 项目 ------------------}
{ ---------- 项目 ------------------}
所以我这样定义模型:
# Question DB
class Article(models.Model):
a_name = models.TextField(unique=True)
a_con = models.TextField() #Article Contents
class Question(models.Model):
q_name = models.TextField(unique=True)
q_a = models.ForeignKey(Article,on_delete=models.CASCADE)
q_con = models.TextField() #Question Contents
q_ans = models.TextField() #Question Correct Answer
class Item(models.Model):
i_q = models.ForeignKey(Question,on_delete=models.CASCADE)
i_seq = models.PositiveIntegerField() #Item Sequence
i_con = models.TextField() #Item Contents
# Image DB
class ArticleImage(models.Model):
ai_name = models.TextField(unique=True)
ai_a = models.ForeignKey(Article,on_delete=models.CASCADE)
ai_src = models.TextField()
class QuestionImage(models.Model):
qi_name = models.TextField(unique=True)
qi_q = models.ForeignKey(Question,on_delete=models.CASCADE)
qi_src = models.TextField()
class ItemImage(models.Model):
ii_name = models.TextField(unique=True)
ii_i = models.ForeignKey(Item,on_delete=models.CASCADE)
ii_src = models.TextField()
我这样写 view.py:
def findQuestionbyArticle(article_name):
_ARTICLE_ = Article.objects.filter(a_name = article_name)
for a in _ARTICLE_:
_ARTICLE_IMAGE_ = ArticleImage.objects.filter(ai_a = a)
_QUESTION_ = Question.objects.filter(q_a = a)
_ITEM_ = {}
_ITEM_IMAGE_ = {}
for q in _QUESTION_:
_QUESTION_IMAGE_ = QuestionImage.objects.filter(qi_q = q)
_ITEM_[q] = Item.objects.filter(i_q = q)
for i in _ITEM_[q]:
_ITEM_IMAGE_[i] = ItemImage.objects.filter(ii_i = i)
return {
'article' : _ARTICLE_,
'article_image' : _ARTICLE_IMAGE_ ,
'question' : _QUESTION_,
'question_image' : _QUESTION_IMAGE_,
'item' : _ITEM_,
'item_image' : _ITEM_IMAGE_
}
我为这样的模板编写了 index.html:
<div class = "content-a">
<div class = "article">
{%for article in articles%}
<span>{{article.a_con}}</span>
{%for article_image in article_images%}
<img src = {{article_image.src}}>
{%endfor%}
{%endfor%}
</div>
{%for question in questions %}
<div class = "question">
<span>{{question.q_con}}</span>
{%for question_image in question_images %}
<img src = {{question_image.src}}>
{%endfor%}
{%for item in items[question] %}
<div class = "item">
<span>{{item.i_con}}</span>
{%for item_image in item_images%}
<img src = {{item_image[item].src}}>
{%endfor%}
</div>
{%endfor%}
</div>
{%endfor%}
</div>
当然,它不起作用......
在这种情况下,我怎样才能让它工作?
如果您有任何想法,请帮助我...这个问题困扰了我一周...
编辑:
结果显示此错误页面。
【问题讨论】:
-
如果您需要根据第一篇文章选择更改其余选择器内容,那么您需要在模板中使用 Ajax 从数据库返回呈现的上下文。
-
@ZarakiKenpachi 感谢您的回复,您的意思是如果我使用 Ajax 我可以在我的页面中显示多个“for 循环”吗?
-
您可以根据所选文章更改问题部分中显示的上下文。
-
@ZarakiKenpachi 嗯明白了,谢谢如果我需要我应该考虑使用那个
-
@bdemirka 我解决了这个问题,请参阅这个主题谢谢! stackoverflow.com/questions/8000022/…