Параметр URL в шаблоне - ID - Django - PullRequest
0 голосов
/ 13 марта 2019
 path('clock/view/<user_id>', views.ClockInOutViewListView.as_view(), name='admin_timesheet_clock_in_out_view'),

Я передаю user_id в URL и выглядит так -

http://localhost:8000/timesheet/clock/view/13

Я хочу, чтобы user_id в моем шаблоне повторно использовал этот user_id Пример - 13.

Я пытался {{user_id}} в моем шаблоне, но он не получил никакого значения

Как я могу получить значение 13 в моем шаблоне, которое передается в моем URL

class ClockInOutViewListView(LoginRequiredMixin, generic.TemplateView):
    template_name = 'clock/clock-view.html'

    def get_context_data(self, user_id, **kwargs):   
        context = super(ClockInOutViewListView, self).get_context_data(**kwargs)
        try:
            context['views'] = TimesheetEntry.objects.filter(
                                    timesheet_users = user_id,
                                ).order_by('-id')
        except: pass

        return context

1 Ответ

1 голос
/ 13 марта 2019

Вы можете получить доступ к user_id с помощью self.kwargs['user_id'], где self - это экземпляр вида

попробуйте это,

class ClockInOutViewListView(LoginRequiredMixin, generic.TemplateView):
    template_name = 'clock/clock-view.html'

    <b>def get_context_data(self, **kwargs):
        user_id = self.kwargs['user_id']
        context = super(ClockInOutViewListView, self).get_context_data(**kwargs)
        context['user_id'] = user_id
        return context</b>


Теперь вы можете получить доступ к user_id в своем шаблоне как {{ user_id }}


Кроме того, я бы предложил избегать голого try..except pass блока, потому что это плохо Подробнее здесь .. Почему «кроме: пройти» плохая практика программирования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...