'User' 对象没有属性 'staffUser'
'User' object has no attribute 'staffUser'
我使用 Django 一对一字段自定义了用户模型
我的models.py
class StaffUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
department = models.ForeignKey(Dept, on_delete=models.RESTRICT)
def __str__(self):
return self.user.username
上传表单时,我想获取用户所在的部门
'My Views.py'
def FileUploadForm(request, pk):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
form.save(commit=False)
u = User.objects.get(username=request.user)
form.instance.username = u
folder = Folder.objects.get(id=pk)
department = u.staffUser.department
form.save()
messages.success(request, f'File Successfully uploaded to {folder} in {department}!')
return redirect('home')
else:
form = UploadFileForm()
context = {'pk':pk, 'form':form}
return render(request, "pages/fileup_form.html", context)
但是报错
/file/new/1 处的属性错误
'User' 对象没有属性 'staffUser'
拜托大家,我需要帮助
在 StaffUser
模型中的用户字段中添加 related_name
class StaffUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name=staff_user)
department = models.ForeignKey(Dept, on_delete=models.RESTRICT)
def __str__(self):
return self.user.username
现在您将能够通过 staff_user
在用户对象
上访问 StaffUser
您需要指定小写的反转,所以 staffuser
而不是 staffUser
。
或者,您可以指定用于调用反向访问器的相关名称,如下所示代替 some_name
。
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name=some_name)
我使用 Django 一对一字段自定义了用户模型
我的models.py
class StaffUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
department = models.ForeignKey(Dept, on_delete=models.RESTRICT)
def __str__(self):
return self.user.username
上传表单时,我想获取用户所在的部门
'My Views.py'
def FileUploadForm(request, pk):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
form.save(commit=False)
u = User.objects.get(username=request.user)
form.instance.username = u
folder = Folder.objects.get(id=pk)
department = u.staffUser.department
form.save()
messages.success(request, f'File Successfully uploaded to {folder} in {department}!')
return redirect('home')
else:
form = UploadFileForm()
context = {'pk':pk, 'form':form}
return render(request, "pages/fileup_form.html", context)
但是报错 /file/new/1 处的属性错误 'User' 对象没有属性 'staffUser'
拜托大家,我需要帮助
在 StaffUser
模型中的用户字段中添加 related_name
class StaffUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name=staff_user)
department = models.ForeignKey(Dept, on_delete=models.RESTRICT)
def __str__(self):
return self.user.username
现在您将能够通过 staff_user
在用户对象
您需要指定小写的反转,所以 staffuser
而不是 staffUser
。
或者,您可以指定用于调用反向访问器的相关名称,如下所示代替 some_name
。
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name=some_name)