Django - 当我不在视图函数中时我可以获取当前用户吗
Django - can I get the current user when I'm not in a view function
我有 Company 和 CompanyUser 模型。 CompanyUser 与 django 的 auth User 模型有 1:1 关系。每个用户都是某个公司的一部分,所以我在 CompanyUser 模型中有一个外键字段(公司):
class CompanyUser(models.Model):
Company = models.ForeignKey(Company)
User = models.OneToOneField(User)
现在我想创建一些 html 表来查看和过滤有关销售、产品等的数据。我正在使用 django-tables2,效果很好。
现在假设我想查看特定产品的销售额。所以我需要一个包含用户所属公司的所有产品的下拉列表。
我已经在我的应用程序中创建了 forms.py 文件:
from django import forms
class SaleFilterForm(forms.Form):
product_id = forms.ChoiceField(queryset=Product.objects.all(Company=???))
...
...
所以我的问题是。当我在 forms.py 文件中时,如何获取当前用户?我那里没有 "request" 对象..
Views.py
def yourview(request):
yourform = SaleFilterForm(request.POST, user=request.user)
Forms.py
class SaleFilterForm(forms.Form):
...
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(SaleFilterForm, self).__init__(*args, **kwargs)
然后您可以在表单中使用您的用户 self.user
希望对您有所帮助!
这是 Django 中将用户信息表单 views.py 传递到各种文件的最佳简单代码,方法是使用一个函数
在文件中,您想访问当前用户信息(例如:models.py):
在所有进口之后
`
user = None
def current_user(request):
global user
user = request.user
`
并在文件
中使用对象变量user
在views.py:
from .models import current_user
在任何函数中(例如-def login(request):)
current_user(request)
它只是基于通过函数简单发送变量。简单的逻辑
我有 Company 和 CompanyUser 模型。 CompanyUser 与 django 的 auth User 模型有 1:1 关系。每个用户都是某个公司的一部分,所以我在 CompanyUser 模型中有一个外键字段(公司):
class CompanyUser(models.Model):
Company = models.ForeignKey(Company)
User = models.OneToOneField(User)
现在我想创建一些 html 表来查看和过滤有关销售、产品等的数据。我正在使用 django-tables2,效果很好。
现在假设我想查看特定产品的销售额。所以我需要一个包含用户所属公司的所有产品的下拉列表。
我已经在我的应用程序中创建了 forms.py 文件:
from django import forms
class SaleFilterForm(forms.Form):
product_id = forms.ChoiceField(queryset=Product.objects.all(Company=???))
...
...
所以我的问题是。当我在 forms.py 文件中时,如何获取当前用户?我那里没有 "request" 对象..
Views.py
def yourview(request):
yourform = SaleFilterForm(request.POST, user=request.user)
Forms.py
class SaleFilterForm(forms.Form):
...
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(SaleFilterForm, self).__init__(*args, **kwargs)
然后您可以在表单中使用您的用户 self.user
希望对您有所帮助!
这是 Django 中将用户信息表单 views.py 传递到各种文件的最佳简单代码,方法是使用一个函数
在文件中,您想访问当前用户信息(例如:models.py): 在所有进口之后
`
user = None
def current_user(request):
global user
user = request.user
`
并在文件
中使用对象变量user在views.py:
from .models import current_user
在任何函数中(例如-def login(request):)
current_user(request)
它只是基于通过函数简单发送变量。简单的逻辑