我正在尝试制作一个简单的图片上传表格,直到我尝试使用发布的数据保存名为User_Image的模型。我得到的错误是:int()参数必须是字符串或数字,而不是'QueryDict',我在标记为 * **** 的行收到它。谢谢你的帮助。
models.py:
class User_Image(models.Model):
image = models.ImageField(upload_to="img")
user_profile = models.ForeignKey(UserProfile)
title = models.CharField(max_length=10)
forms.py:
class User_ImageForm(ModelForm):
class Meta:
model = User_Image
views.py:
def upload_image(request):
if request.method == 'POST':
HttpResponseRedirect("/accounts/profile")
form = User_ImageForm(request.POST, request.FILES)
if form.is_valid():
im = User_Image(request.POST, request.FILES)
******im = im.save()
HttpResponseRedirect("/accounts/profile")
else:
form = User_ImageForm()
return render_to_response('uploadimage.html', {'form':form}, context_instance=RequestContext(request))
答案 0 :(得分:1)
为什么要直接将它保存到模型类中?尝试:
form = User_ImageForm(request.POST, request.FILES)
if form.is_valid():
im = form.save()
HttpResponseRedirect("/accounts/profile")
答案 1 :(得分:0)
您不需要遵循以下几行。
im = User_Image(request.POST, request.FILES)
im = im.save()
足以保存表单,
.....
if form.is_valid():
form.save()
HttpResponseRedirect("/accounts/profile")
.....