Skip to main content
 首页 » 编程设计

python之django-extra-views 获取当前用户

2024年11月01日36EasonJim

我正在使用 django-extra-views 中的 CreateWithInlinesView。在这种情况下,我将如何检索当前用户?

我现在有这样的东西

class PublisherCreateView(CreateWithInlinesView): 
    model = Publisher 
    inlines = [BookInline,] 
 
    def form_valid(self, form, inlines): 
        form.instance.created_by = self.request.user 
        return super(PublisherCreateView, self).form_valid(form, inlines) 

这仍然返回错误 (1048, "Column 'created_by_id' cannot be null")。

编辑:将我的编辑变成答案

请您参考如下方法:

    def forms_valid(self, form, inlines): 
        form.instance.created_by = self.request.user 
        return super(PublisherCreateView, self).forms_valid(form, inlines) 

这是因为 CreateWithInlinesView 使用 forms_valid() 方法对 BaseCreateWithInlinesView 进行子类化,该方法调用 form_valid()表单本身及其内联。