我有公司和CompanyUser的型号。CompanyUser与django的auth用户模型有1:1的关系。每个用户都是某个公司的一部分,所以我在CompanyUser模型中有一个CompanyUser字段( company ):
class CompanyUser(models.Model):
Company = models.ForeignKey(Company)
User = models.OneToOneField(User)
现在,我想创建一些html表来查看和过滤有关销售、产品等的数据。我使用django-table 2,这很好。
现在,假设我想看到某一特定产品的销售情况。所以我需要一个下拉列表,其中包含用户所属的公司的所有产品。
我在我的应用程序中创建了forms.py文件:
from django import forms
class SaleFilterForm(forms.Form):
product_id = forms.ChoiceField(queryset=Product.objects.all(Company=???))
...
...
所以我的问题是。当我在forms.py文件中时,如何获得当前用户?我在那里没有“请求”的对象。
发布于 2015-07-23 12:19:31
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
使用。
希望能帮上忙!
发布于 2020-06-15 15:36:42
这是Django中将用户信息从views.py传递到各种文件的最佳简单代码,方法是使用一个函数
在文件中,您希望访问当前用户信息(ex:models.py):在所有导入之后
`
user = None
def current_user(request):
global user
user = request.user
`
并在文件中使用对象变量用户。
in views.py:
from .models import current_user
在任何函数中(例如-def登录(请求):)
current_user(request)
它只是基于简单的发送变量通过函数。简单逻辑
https://stackoverflow.com/questions/31586733
复制相似问题