帮我写一段django代码,实现用户注册中上传头像的功能,将头像存储到图片文件夹,并获取图片名称
时间: 2023-11-27 22:54:00 浏览: 97
好的,下面是一份Django视图代码,实现用户上传头像并保存到指定文件夹中的功能:
```python
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.decorators import login_required
from django.conf import settings
from django.core.files.storage import FileSystemStorage
@login_required
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST, request.FILES)
if form.is_valid():
user = form.save()
if 'image' in request.FILES:
image = request.FILES['image']
fs = FileSystemStorage()
filename = fs.save(image.name, image)
user.profile_image = filename
user.save()
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'registration/register.html', {'form': form})
```
这个视图函数首先检查请求方法是否为POST。如果是,它会创建一个UserCreationForm对象,并将请求中的表单数据和文件传递给它。如果表单有效,它将保存用户并检查请求中是否有图像。如果有,它使用FileSystemStorage将图像保存在指定目录中,并将文件名保存到用户的profile_image字段中。最后,它重定向到主页。
请注意,此代码假定您有一个名为`profile_image`的CharField,用于保存用户上传的图像文件名。您可以在您的用户模型中添加此字段。
阅读全文