首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django -当我不在视图函数中时,我能得到当前用户吗?

Django -当我不在视图函数中时,我能得到当前用户吗?
EN

Stack Overflow用户
提问于 2015-07-23 11:59:37
回答 2查看 2.4K关注 0票数 2

我有公司和CompanyUser的型号。CompanyUser与django的auth用户模型有1:1的关系。每个用户都是某个公司的一部分,所以我在CompanyUser模型中有一个CompanyUser字段( company ):

代码语言:javascript
运行
复制
class CompanyUser(models.Model):
    Company = models.ForeignKey(Company)
    User = models.OneToOneField(User)

现在,我想创建一些html表来查看和过滤有关销售、产品等的数据。我使用django-table 2,这很好。

现在,假设我想看到某一特定产品的销售情况。所以我需要一个下拉列表,其中包含用户所属的公司的所有产品。

我在我的应用程序中创建了forms.py文件:

代码语言:javascript
运行
复制
from django import forms

class SaleFilterForm(forms.Form):
    product_id = forms.ChoiceField(queryset=Product.objects.all(Company=???))
    ...
    ...

所以我的问题是。当我在forms.py文件中时,如何获得当前用户?我在那里没有“请求”的对象。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-23 12:19:31

Views.py

代码语言:javascript
运行
复制
def yourview(request):
    yourform = SaleFilterForm(request.POST, user=request.user)

Forms.py

代码语言:javascript
运行
复制
class SaleFilterForm(forms.Form):
    ...

    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user', None)
        super(SaleFilterForm, self).__init__(*args, **kwargs)

然后,可以将表单中的用户作为self.user使用。

希望能帮上忙!

票数 2
EN

Stack Overflow用户

发布于 2020-06-15 15:36:42

这是Django中将用户信息从views.py传递到各种文件的最佳简单代码,方法是使用一个函数

在文件中,您希望访问当前用户信息(ex:models.py):在所有导入之后

`

代码语言:javascript
运行
复制
user = None
def current_user(request):
    global user
    user = request.user

`

并在文件中使用对象变量用户

in views.py:

from .models import current_user

在任何函数中(例如-def登录(请求):)

current_user(request)

它只是基于简单的发送变量通过函数。简单逻辑

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31586733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档