2017-11-24 5 views
1

2つのクラスの質問と回答がモデルにあります。どちらもForeignKeyによってユーザーに接続されています。テンプレートでは、私はloogedのユーザーのすべての答えを印刷したいと思います。これは簡単に起こっている。しかし、私の問題はです。答えはに相当します。質問をするための質問は何でしょうか?djangoの回答オブジェクトからQustionを取得するには?

def answered_by_me(request, user_id): 
    user = User.objects.get(pk=user_id) 
    answers = user.answer_set.all() 
    questions = user.question_set.all() 
    context = {'answers': answers, 'questions': questions, 'user_id': user_id} 
    return render(request, template_name='ans/answered_by_me.html', context=context) 

テンプレート:

{% block body %} 
    {{ answers }} 
    {% if answers %} 
     <ul> 
      {% for answer in answers %} 

       <li> {{ answer }}</li> 

      {% endfor %} 
     </ul> 
    {% endif %} 

{% endblock %} 

答えて

1

答えは、外部キーの質問をQuestionテーブルに接続されているので、私はちょうど

{% for answer in answers %} 

     <li> {{ answer.questions }}</li> 

    {% endfor %} 

に持っていました。ですから、answer.questionsは私に対応する質問を与えます。

1

あなたが質問を渡したい場合を除きあなたは、新しいクエリを必要としない

class Question(models.Model): 
    title = models.CharField(max_length=200, blank=True, null=True) 
    description = models.TextField() 
    pub_date = models.DateTimeField() 
    user = models.ForeignKey(User, on_delete=models.CASCADE) 

    def __str__(self): 
     return self.title 

class Answer(models.Model): 
    answer_text = models.TextField() 
    questions = models.ForeignKey(Question, on_delete=models.CASCADE) 
    user = models.ForeignKey(User, on_delete=models.CASCADE) 
    pub_date = models.DateTimeField() 

    def __str__(self): 
     return self.answer_text 

ビューbelow--与えられたモデル、テンプレートとビューあなたの目に見える。

{% for question in questions %} 
    <li>{{ question }}</li> 
    {% for answer in question.answer_set.all %} 
    <li> {{ answer }}</li> 
    {% endfor %} 
{% endfor %} 

私はこれが働くかもしれないと思う:代わりに答えをループの

、あなたはループの質問をする必要があります。

関連する問題