2016-05-15 135 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

我找到了解決方案,我認爲這是它的問題。如果有人有更好的解決方案,請讓我知道。

我所做的是重寫get_context_data以將配置文件ID返回給模板。

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> 
相關問題