在Django中上传图片时出错:“强制转换为Unicode:需要字符串或缓冲区,找到元组”

问题描述

| 尝试在Django中使用ImageField。 这是我的模特
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>
但是在保存时,我有下一个错误: 在/ trial / upload /的TypeError 强制转换为Unicode:需要字符串或缓冲区,找到元组 错误出现在photo.save上 有人知道为什么会这样吗?为什么元组会出现?我确定有一个愚蠢的错误...     

解决方法

        我自己弄的。在settings.py中有MEDIA_ROOT设置,
MEDIA_ROOT = \'d:/dev/python/scripts/app/media/\',
Python由于末尾的逗号而使对象成为元组。这就是为什么它无法保存对象的原因。下次看你的逗号!     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...