[英]Django: Foreignkey query
我有models.py如下:
class Article(models.Model):
board = models.ForeignKey(Board)
subject = models.CharField("과목명", max_length=10)
...
class Question(models.Model):
user = models.ForeignKey(User)
article = models.ForeignKey(Article)
professor = models.CharField("출제교수", max_length=4)
...
Views.py:
def get_q_table(request):
context = {
"q_list" : Question.objects.all().order_by("number")
}
return render(request, "q_table.html", context)
我想以某种方式将相关实例传递给q_table.html,但找不到实现此目的的方法。 我应该是下面的样子(当然,这不太正确。我一直在查找外键查询的文档,但我找不到出路':
def get_q_table(request):
context = {
"q_list" : Question.objects.all().order_by("number")
"article" : Question.objects.all().related_board
}
return render(request, "q_table.html", context)
如果我想出办法,那么以下模板应该可以工作:
<div class="container">
<div class="page-header"><h3>{{article.subject}} : {{article.year}}년 {{article.semester}}학기 {{article.quarter}}Q</h3></div>
<div>
<ul class="list-group" id="visitorbook">
{% for question in questions %}
<li class="list-group-item">{{question.number}} : {{ question.question }} - {{ question.answer }}
</li>
{% endfor %}
</ul>
</div>
</div>
在模板中,它应该是:
{% for question in q_list %}
您已经获取了aricle对象;
articles = Article.objects.all()
{% for article in articles %}
<div class="container">
<div class="page-header"><h3>{{article.subject}} : {{article.year}}년 {{article.semester}}학기 {{article.quarter}}Q</h3></div>
<div>
<ul class="list-group" id="visitorbook">
{% for question in article.question_set.all %}
<li class="list-group-item">{{question.number}} : {{question.question }} - {{ question.answer }}
</li>
{% endfor %}
</ul>
</div>
</div>
{% endfor %}
如果您只想获取一篇文章,那么;
articles = Article.objects.get(id=id)`
<div class="container">
<div class="page-header"><h3>{{article.subject}} : {{article.year}}년 {{article.semester}}학기 {{article.quarter}}Q</h3></div>
<div>
<ul class="list-group" id="visitorbook">
{% for question in article.question_set.all %}
<li class="list-group-item">{{question.number}} : {{question.question }} - {{ question.answer }}
</li>
{% endfor %}
</ul>
</div>
</div>
我想,您想明确选择文章,然后选择所有相关问题。
尝试这个:
article = Article.objects.get(id)
questions = article.question_set.all()
context = {
"article" : article
"questions" : questions
}
有关使用相关对象的一般信息: https : //docs.djangoproject.com/en/1.8/topics/db/queries/#related-objects
订购时: https : //docs.djangoproject.com/en/1.8/ref/models/options/#ordering
如果所有问题的文章都相同,则可以尝试如下操作:
{% with article=questions.0.article %}
<div class="container">
<div class="page-header"><h3>{{article.subject}} : {{article.year}}년 {{article.semester}}학기 {{article.quarter}}Q</h3></div>
<!-- other stuff -->
</div>
{% endwith %}
尽管您也应该以最适合您的情况处理问题列表为空的情况。 另请注意,您无需在上下文中添加“文章”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.