0

我正在尝试制作一个简单的图像上传表单,该表单一直有效,直到我尝试使用发布的数据保存名为 User_Image 的模型。我得到的错误是这样的: int() 参数必须是字符串或数字,而不是 'QueryDict' 并且我在标记为* ****的行收到它。谢谢您的帮助。

模型.py:

class User_Image(models.Model):
    image = models.ImageField(upload_to="img") 
    user_profile = models.ForeignKey(UserProfile)
    title = models.CharField(max_length=10)

表格.py:

class User_ImageForm(ModelForm):
    class Meta:
         model = User_Image

视图.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))
4

2 回答 2

1

为什么要直接将其保存到模型类中?尝试:

form = User_ImageForm(request.POST, request.FILES)
if form.is_valid():
    im = form.save()
    HttpResponseRedirect("/accounts/profile")
于 2013-01-17T06:01:48.847 回答
0

您无需遵循以下原则。

im = User_Image(request.POST, request.FILES)
im = im.save()

足以保存表格,

.....
if form.is_valid():
   form.save()
   HttpResponseRedirect("/accounts/profile")
.....
于 2013-01-17T07:13:12.407 回答