首页 > 解决方案 > 在 Django 表单中获取用户名

问题描述

我想在我的表单中获取用户名。例如:当前用户的用户名是 admin 然后在我的表单中,名称部分应自动填写 ' admin '。我应该怎么办?这是我的代码...

视图.py

def attendanceView(request):
    if request.method=='POST':
        form = AttendanceForm(request.POST)
        if form.is_valid():
            attendance = AttendanceModel()
            attendance.name = form.cleaned_data['name']
            attendance.date = form.cleaned_data['date']
            attendance.save()
            return redirect('home')
    else:
        form = AttendanceForm()
    return render(request, 'attendance.html', {'form': form})

模型.py

class AttendanceModel(models.Model):
    name = models.CharField(max_length=100)
    date = models.DateTimeField(default=datetime.now)

    class Meta:
        unique_together = ('name', 'date',)

表格.py

class AttendanceForm(ModelForm):
    class Meta:
        model = AttendanceModel
        fields=('name', 'date')

标签: pythondjango

解决方案


您可以在视图中预填充表单的特定字段。

视图.py

   def attendanceView(request):
      if request.method=='POST':
          form = AttendanceForm(request.POST)
          if form.is_valid():
              attendance = AttendanceModel()
              attendance.name = form.cleaned_data['name']
              attendance.date = form.cleaned_data['date']
              attendance.save()
              return redirect('home')
          else:
              initial = {'name':request.user.username}
              form = AttendanceForm(initial=intial)
      return render(request, 'attendance.html', {'form': form})

推荐阅读