2015-10-13 73 views
0

我有models.py如下:Django的:FOREIGNKEY查詢

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> 

回答

1

在模板中,認爲應該是:

{% for question in q_list %} 
1

你取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> 
1

提供的,該物品是爲所有問題一樣,你可以嘗試這樣的事情:

{% 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 %} 

儘管您應該在問題列表爲空時以最適合您的方式處理案例。另外請注意,您不需要將「文章」添加到上下文中。