2016-05-15 9 views
0

は、私は私が特定の従業員プロファイルのすべてのトレーニングを表示することができ、私は設定のビューを持っている:Djangoテンプレートのプロファイルオブジェクト(プロファイルID)にアクセスする方法は?

class ManageTrainingView(LoginRequiredMixin, generic.ListView): 
    login_url = reverse_lazy('users:login') 
    model = Training 
    template_name = 'ppm/training.html' 
    paginate_by = 10 

    # Get training queryset for specific profile id 
    def get_queryset(self): 
     pk = self.kwargs['pk'] 
     return Training.objects.filter(profile_id=pk) 

私が持ってる問題は、私は特定のためのより多くの訓練を追加しようとしているということですユーザーIDの代わりにプロファイルIDを使用する従業員プロファイル。私training.htmlテンプレートでは、これは

training.html

<li><a href="{% url 'ppm:add-training' user.id %}">Add Training</a></li> 

しかし、これは私の質問は、私はするために何をする必要がありますものです(NoReverseMatch)

<li><a href="{% url 'ppm:add-training' profile.id %}">Add Training</a></li> 

をしない作品ユーザーではなく特定の従業員プロファイルのトレーニングを追加しますか? profile.idが機能するように、現在テンプレートにあるプロファイルオブジェクトにアクセスするにはどうすればよいですか?

答えて

0

私の問題に対する解決策を見つけました。これはそれだと思います。誰かがより良い解決策を持っているなら私に知らせてください。

私がしたことは、テンプレートにプロファイルIDを返すために、get_context_dataを上書きすることでした。

def get_context_data(self, **kwargs): 
    pk = self.kwargs['pk'] 
    context = super(ManageTrainingView, self).get_context_data(**kwargs) 
    context['profile_id'] = pk 
    return context 

今、私が使用することができる午前:

<li><a href="{% url 'ppm:add-training' profile_id %}">Add Training</a></li> 
関連する問題