Python 如何在django表单中填充当前用户

Python 如何在django表单中填充当前用户,python,python-3.x,django,django-models,django-views,Python,Python 3.x,Django,Django Models,Django Views,我有两种型号,Employee和Leave,其中Employee是Leave中的外键。现在,当员工申请休假时,我希望员工姓名选项仅限于登录用户,而不是所有员工。我是否可以创建只读的自定义输入,并使用{{}发送用户数据?我无法从输入组检索到模型的数据 这是我的密码 models.py: class员工(models.Model): user=models.OneToOneField(用户,on_delete=models.CASCADE) 无\u叶=models.IntegerField( nul

我有两种型号,
Employee
Leave
,其中
Employee
Leave
中的外键。现在,当
员工
申请休假时,我希望
员工
姓名选项仅限于登录用户,而不是所有员工。我是否可以创建只读的自定义输入,并使用
{{}
发送用户数据?我无法从输入组检索到模型的数据

这是我的密码

models.py

class员工(models.Model):
user=models.OneToOneField(用户,on_delete=models.CASCADE)
无\u叶=models.IntegerField(
null=False,
验证器=[MinValueValidator(1),MaxValueValidator(24)],
默认值=24
)
定义(自我):
返回self.user.username
课堂假期(models.Model):
employee=models.ForeignKey(employee,on_delete=models.CASCADE,default=”“)
开始日期=models.DateField(自动现在添加=False)
end\u date=models.DateField(auto\u now\u add=False)
req_date=models.DateTimeField(默认值为datetime.datetime.now())
批准人=models.CharField(最大长度=100,空白=True)
状态_选项=(
(“已批准”、“已批准”),
(“待决”、“待决”),
(“谢绝”、“谢绝”),
)
approved=models.CharField(最大长度=10,选项=STATUS\u OPTIONS,默认为挂起)
定义(自我):
返回self.employee.user.username
@财产
定义日期差异(自身):
返回(self.end\u日期-self.start\u日期)。天
forms.py

class leaveForm(forms.ModelForm):
类Meta():
模型=离开
字段=('employee'、'start\u date'、'end\u date')
#start_date=forms.DateField(widget=forms.DateInput(attrs={'type':'date'}))
小部件={
“开始日期”:日期输入(属性={'type':'date'}),
“结束日期”:日期输入(属性={'type':'date'})
}
views.py

@需要登录\u
def applyforleave(请求):
user=request.user
emp=Employee.objects.get(user=user)
提交=错误
如果request.method==“POST”:
请假表格=请假表格(数据=请假.POST)
emp_name=员工(数据=请求.职位)
如果离开表单有效()且emp名称有效():
emp_name.save()
开始日期=离开表单。清理数据。获取(“开始日期”)
结束日期=离开表单。清理数据。获取(“结束日期”)
天=(结束日期-开始日期)。天
天数检查者=环境管理计划的天数-天数
如果0<天\u检查人<环境管理计划第\u条离开:
离开=离开表单保存()
请假
离开。保存()
提交=真
其他:
打印(“错误”)
其他:
打印(留下表格错误)
其他:
离开形式=离开形式()
返回渲染(
要求
'leaveApp/leave.html',
{
“离开形式”:离开形式,
“已提交”:已提交,
“emp”:emp
}
)
leave.html


{%csrf_令牌%}
{{leave_form.as_p}}
在forms.py中添加上述init

labels = {'employee': user}
    
        statistics = forms.Field(
            label=user,
        )
这将在您的
表单.py

leave_form = leaveForm(request)
        
并从
views.py中传递
request

leave_form = leaveForm(request)
        
您还可以检查使用初始参数的文档

它说request not defined您可以尝试将request.user或request从view.py传递到表单吗?labels={'employee':request.user}name错误:未定义名称'request'