2016-10-07 1 views
0

私はジャンゴ1.9を実行している、と私は、これらの2つの単純なモデルがあります:ジャンゴページとアクセスが

#models.py 
class Question(models.Model): 
    question_title = models.CharField(max_length=50) 
    question_text = models.CharField(max_length=500) 
class Answer(models.Model): 
    question = models.ForeignKey(Question, on_delete=models.CASCADE) 
    answer_text = models.CharField(max_length=500) 

をして、これは単に答えを表示します。

# views.py 
class QuestionView(generic.DetailView): 
    model = Question 
    template_name = 'forum/question.html' 

が、今私が欲しいですビューにページを作成する:

これは問題を引き起こします。私はもはやtの質問オブジェクトにアクセスできません。 emplate:

#template.html 
{{ question.question_title }} 

どうすれば質問オブジェクトにアクセスできますか?それとも単純に不可能な何かを今でもしたいのですか?

ps。私は必要なものすべてをインポートします(一般的なもの以上)。私は読みやすさのためにそれらを残しました。

答えて

1

get_context_data()を定義することで、任意のデータをビューに追加できます。他に何もすることなく、テンプレート内{{ object.answer_set.all }}経由 - デフォルトのオブジェクトを経由して - -

def get_context_data(self, *args, **kwargs): 
    context = super(ListView, self).get_context_data(*args, **kwargs): 
    context['question'] = Question.objects.get(pk=self.kwargs['pk']) 
    return context 

また、あなたはあなたの元DetailView が既にはあなたが両方の質問へのアクセスを提供することを反映しているのかもしれないとその答え。質問には、ページ設定が必要な十分な回答があるとは思われません。これは、ListViewが主な利点です。

+0

ありがとう、ちょうど私が必要とする。答えてくれてありがとう – stetim94

関連する問題