0

Я пытаюсь получить доступ к текущей пользовательской информации, чтобы фильтровать элементы клиента, но я застрял в ошибке.Django: получить доступ к информации пользователя из generic.view

Я думаю, это должен быть другой способ запросить информацию у текущего пользователя. Я использую это: self.kwargs.request.user.

Я получил эту ошибку при использовании self.request.user я получаю эту ошибку get_context_data() отсутствует 1 необходимые позиционная аргумент: 'пользователь'

Моего url.py

url(r'^update/(?P<pk>[0-9]+)/$', views.CampaignUpdate.as_view(), name='update_campaign'), 

AttributeError в ' Dict «объект не имеет атрибута„запрос“

class CampaignUpdate(generic.UpdateView): 
     model = Campaign 
     fields = [.....] 
     template_name = 'campaign/campaign.html' 
     success_url = '../../' 

     def get_context_data(self, *args, **kwargs): 
      context = super(CampaignUpdate, self).get_context_data(**kwargs) 
      items = items.objects.get(client= self.kwargs.request.user) 
+0

Добавить полный трассировки стека –

+0

@SardorbekImomaliev Я изменил определение функции get_context_data (я, * арг, ** kwargs): 'на это определение функции get_context_data (self, form_class = None, ** kwargs): 'и работал нормально. Я не знаю, почему – jfk83

+0

@SardorbekImomaliev using 'self.request.user' – jfk83

ответ

1

Используйте следующий код, чтобы получить текущего пользователя» Ite m '.

class CampaignUpdate(generic.UpdateView): 
    model = Campaign 
    fields = [.....] 
    template_name = 'campaign/campaign.html' 
    success_url = '../../' 


    def get_context_data(self, *args, **kwargs): 
     context = super(CampaignUpdate, self).get_context_data(**kwargs) 
     context['items'] = Items.objects.get(client= self.request.user) 
     return context 

Если вы хотите получить 'кампании', вы можете просто доступ к линии self.object, как сво UpdateView

+0

Я получил эту ошибку при использовании 'self.request.user' Я получаю эту ошибку get_context_data() missing 1 обязательный позиционный аргумент: 'user' – jfk83

+0

Используйте это, context = super (CampaignUpdate, self) .get_context_data (* args, ** kwargs) – Rajesh

0

Я изменил def get_context_data(self, *args, **kwargs):

в

def get_context_data(self, form_class=None, **kwargs):

и он работал отлично, хотя я не знаю, почему ...

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