在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上
有人知道为什么会这样吗?为什么元组会出现?我确定有一个愚蠢的错误...
没有找到相关结果
已邀请:
1 个回复
佃蒜狗掂哥
Python由于末尾的逗号而使对象成为元组。这就是为什么它无法保存对象的原因。下次看你的逗号!