2013-01-17 38 views
0

我試圖做一個簡單的圖像上傳表單,它直到我嘗試使用發佈的數據保存名爲User_Image的模型。我得到的錯誤是這樣的:int()參數必須是字符串或數字,而不是'QueryDict',並且我在標記爲* ****的行上收到它。謝謝您的幫助。在Django中保存圖像ModelForm時的查詢錯誤

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)) 

回答

1

你爲什麼把它保存到直接在模型類?請嘗試:

form = User_ImageForm(request.POST, request.FILES) 
if form.is_valid(): 
    im = form.save() 
    HttpResponseRedirect("/accounts/profile") 
+1

也希望你有一個名爲網址,所以'HttpResponseRedirect(逆轉( '帳戶資料'))' – rockingskier

0

您不需要遵循以下幾行。

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

足以保存表單,

..... 
if form.is_valid(): 
    form.save() 
    HttpResponseRedirect("/accounts/profile") 
.....