2011-05-31 22 views
2

試圖與一起使用ImageField在django中。 這裏是我的模式上傳django中的圖像時出錯:「強制爲Unicode:需要字符串或緩衝區,找到元組」

class Album(models.Model): 
    title = models.CharField(max_length=100) 

    def __unicode__(self): 
     return self.title 

class Photo(models.Model): 
    image = models.ImageField(upload_to='photos/') 
    album = models.ForeignKey(Album) 
    title = models.CharField(max_length=100, default="") 

    def __unicode__(self): 
     return self.title 

class PhotoModelForm(forms.ModelForm): 
    class Meta: 
     model = Photo 

這裏是一部分urls.py

... 
url(r'^trial/upload/$', 'trial.views.upload'), 
... 

views.py

def upload(request): 
    if request.method == 'POST': 
     form = PhotoModelForm(request.POST, request.FILES) 
     if form.is_valid(): 
      photo = form.save() 
      return render_to_response('trial/thanks_upload.html',{ 
       'photo': photo 
      }, context_instance = RequestContext(request)) 
    else: 
     form = PhotoModelForm() 
    return render_to_response('trial/upload.html', { 
     'form': form 
    }, context_instance = RequestContext(request)) 

upload.html

<form enctype="multipart/form-data" action="/trial/upload/" method="post"> 
    {% csrf_token %} 
    {% for field in form %} 
     <div class="fieldWrapper"> 
      {{ field.errors }} 
      {{ field.label_tag }}: {{ field }} 
     </div> 
    {% endfor %} 
    <p><input type="submit" value="Upload" /></p> 
</form> 

但在節能我有一個錯誤:在/試用/上傳/ 脅迫到Unicode 類型錯誤:需要字符串或緩衝區,元組發現

錯誤出現在photo.save

有沒有人有想法爲什麼會這樣?爲什麼要出現元組?我確信有一個愚蠢的錯誤...

+0

你能告訴錯誤發生的地方嗎? – Don 2011-05-31 09:28:17

+0

在** views.py **其中** photo = form.save()**去 – megido 2011-05-31 09:29:24

+0

看起來像在某處輸入額外的逗號。 – DrTyrsa 2011-05-31 09:38:59

回答

9

我已經得到它自己。在settings.py有MEDIA_ROOT設置,這是

MEDIA_ROOT = 'd:/dev/python/scripts/app/media/', 

的Python使得因爲在端部的逗號的對象元組。這就是爲什麼它無法保存對象。下次看你的逗號!

+3

+1中。與SECRET_KEY設置有同樣的問題。 – 2013-07-22 17:39:31

+1

如果其他人也有同樣的問題並在互聯網上發佈 – HesamDadafarin 2015-01-05 17:28:14

相關問題