python - 我想使用 django 将图像保存在文件夹中,但出现此错误
问题描述
我想使用 django 将图像保存在文件夹中,但出现此错误:
MultiValueDictKeyError at /lunchpk/signup/
我需要解决任何帮助将不胜感激
我还看到更多问题,但我没有得到正确答案,所以请回答我的问题,不要将其添加到重复中
这是我的views.py
def signup(request):
registered = False
if request.method == "POST":
user_form = UserForm(data=request.POST)
profile_form = NewForm(data=request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
if 'Profile_Image' in request.FILES:
profile.Profile_Image = request.FILES['profile_pics']
# profile.Dish_Image = request.FILES['Dish_pic']
profile.save()
registered = True
else:
print(user_form.errors,profile_form.errors)
else:
user_form = UserForm()
profile_form = NewForm()
return render(request,'html/signup.html',{'user_form':user_form,'profile_form':profile_form,'registered':registered})
这是我的model.py
class UserInfo(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
Profile_Image = models.ImageField(upload_to='profile_pics',null=True, blank=True)
Dish_Image = models.ImageField(upload_to='Dish_pic',null=True, blank=True)
Dish_Name = models.CharField(max_length=10,)
def __str__(self):
return self.user.username
这是我的forms.py
from django import forms
from django.contrib.auth.models import User
from .models import *
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
class Meta:
model = User
fields = ('username','email','password')
class NewForm(forms.ModelForm):
class Meta:
model = UserInfo
fields = ('Profile_Image','Dish_Image','Dish_Name')
解决方案
您正在请求'profile_pics'
request.FILES 中的密钥,但它不存在。
在常规字典中,您会得到一个 KeyError。但是,可以有多个同名的请求参数,所以 Django 使用了一个 MultiValueDict,它有自己的 MultiValueDictKeyError。
我想你想要request.FILES['Profile_Image']
而不是request.FILES['profile_pics']
.
推荐阅读
- flutter - 页面打开时开始计数的简单计时器 [Flutter]
- laravel-8 - 即使定义了路由,Laravel 也不支持 POST 方法
- reactjs - 如何在具有特定值的输入上方放置一个 div?
- java - 如何在父片段处理 onBackPressed
- c# - C# MongoDbDriver 迁移过时的计数到替换方法
- netsuite - 如何在那里导入装配构建和插入线的库存详细信息?
- c++ - 将基类的引用分配给派生
- python - opencv和旧游戏图形python 3
- python - 如何加载 .pth 文件?
- xamarin.forms - MasterDetailPage 侧栏上不可见的按钮