2012-03-07 3 views
1

EDIT: Я полностью неправильно понял правильный подкласс TemplateView, который лежит в основе этой ошибки. Я также избавляюсь от метода get, который я не должен иметь в TemplateView.Django get_context_data никогда не вызывается в MyCustomTemplateView?

Оригинальный вопрос:

Я создал подкласс TemplateView:

class MyTemplateView(TemplateView): 

    def get_context_data(self,*args, **kwargs): 
    context = super(MyTemplateView, self).get_context_data(*args, **kwargs) 
    context['current_business_view'] = self.kwargs.get('user_business_id') 
    return context 

Все мои Просмотров подкласса MyTemplateView.

Я ожидал, что get_context_data будет вызван, но похоже, что он никогда не вызван - чего мне здесь не хватает?

+0

Как выглядит маршрут для этого вида в urls.py? – yedpodtrzitko

+0

Я полностью неправильно понял, как использовать TemplateView, который является основой моей ошибки. Все работает так, как должно, я над избавлением от неправильных методов. –

+0

Для всех, кто наткнулся на эту проблему, метод 'get_context_data' вызывается только для класса представления, который обрабатывает целевой URL. Тем не менее, если у вас возникла проблема Sjaak, проверьте свою конфигурацию 'urls.py' и убедитесь, что нужный URL не указывает на другой неожиданный вид (т. Е. Что случилось со мной и привело меня к этой публикации). – ecoe

ответ

1

Я думаю, что функция вызывается, но значение user_business_id равно None.

Пробуйте отладку с отладчиком Python.

class MyTemplateView(TemplateView): 

    def get_context_data(self,*args, **kwargs): 
     context = super(MyTemplateView, self).get_context_data(*args, **kwargs) 
     context['current_business_view'] = self.kwargs.get('user_business_id') 
     import pdb; pdb.set_trace(); 
     return context 

Теперь, когда вы выполняете python manage.py runningerver, сервер остановится в точке останова. Вы можете напечатать контекст печати, чтобы узнать, что находится в контексте.

Надеюсь, это поможет.

+0

Благодарим вас за ответ, однако я полностью неправильно понял использование TemplateView - см. Мой комментарий в открытии. –

Смежные вопросы