加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

django form – 将request.user传递给widget呈现函数

发布时间:2020-12-20 12:17:56 所属栏目:Python 来源:网络整理
导读:我如何将request.user对象传递给我创建的自定义窗口小部件的渲染函数,或者从渲染函数中访问当前用户的最佳方法是什么 解决方法 解决方案我认为还不是一个黑客(但接近),并没有那么大的麻烦. 覆盖表单上的init: def __init__(self,*args,**kwargs): user = kw
我如何将request.user对象传递给我创建的自定义窗口小部件的渲染函数,或者从渲染函数中访问当前用户的最佳方法是什么

解决方法

解决方案我认为还不是一个黑客(但接近),并没有那么大的麻烦.

>覆盖表单上的init:

def __init__(self,*args,**kwargs):
    user = kwargs.pop('user',None)
    super(SomeForm,self).__init__(*args,**kwargs)
    self.fields['your_field'].widget.user = user

>覆盖您的小部件:

def __init__(self,**kwargs):
    self.user = None
    super(YourWidget,**kwargs)

>在小部件上与您的用户一起获利.

显然,您需要向表单提供用户,并且在某些边缘情况下这可能是一个问题,例如您正在使用django动态视图而您不愿意将它们更改为更静态的方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读