Django:从generic.view

时间:2016-10-17 03:55:56

标签: django django-models django-forms django-templates django-views

我正在尝试访问当前用户信息以过滤客户端的项目,但我遇到了错误。

我想我必须采用不同的方式来请求当前用户的信息。我使用的是:self.kwargs.request.user。

使用self.request.user时出现错误我得到此错误get_context_data()缺少1个必需的位置参数:'user'

我的url.py

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

属性错误 'dict'对象没有属性'request'

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)

2 个答案:

答案 0 :(得分:1)

  

使用以下代码获取当前用户&#39;项目&#39;宾语。

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
  

如果您想要获得&#39;广告系列&#39;,您只需访问自我对象行作为其UpdateView

答案 1 :(得分:0)

我改变了 def get_context_data(self, *args, **kwargs):

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

它工作正常,即使我不知道为什么......