django - 在django中上传图片时出错: "coercing to Unicode: need string or buffer, tuple found"

标签 django image-uploading modelform imagefield

尝试在 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))

上传.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 上出现错误

有人知道为什么会这样吗?为什么会出现元组?我确信有一个愚蠢的错误......

最佳答案

我自己已经拿到了。在settings.py中有MEDIA_ROOT设置,即

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

Python 由于末尾有逗号而将对象创建为元组。这就是它无法保存该对象的原因。下次注意你的逗号!

关于django - 在django中上传图片时出错: "coercing to Unicode: need string or buffer, tuple found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6185342/

相关文章:

python - Django加载什么模板?

Python、pinax、django、windows AttributeError : 'module' object has no attribute 'call_subprocess'

django: sqlite3.OperationalError: 没有这样的表

Django 列 wagtailcore_page.draft_title 不存在

python - Django 图片上传和调整大小

python - 保存时修改 Django ModelForm 中文件的文件名

Django 模型形式 : how to show a select for a CharField?

django - DJANGO:更改ModelMultipleChoiceField的字段大小吗?

wordpress - 无法在 Wordpress 的 wp-content/uploads 中创建目录

android - 在android中以编程方式使用google drive api将图像上传到google drive