【发布时间】:2025-11-27 18:10:01
【问题描述】:
尝试在 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>
但是在保存时我有下一个错误: /trial/upload/ 处的类型错误 强制转换为 Unicode:需要字符串或缓冲区,找到元组
photo.save
上出现错误有人知道为什么会这样吗?为什么会出现 tuple?我确定有一个愚蠢的错误......
【问题讨论】:
-
你能说出错误发生在哪一行吗?
-
在 views.py 中 photo = form.save() 去哪里
-
看起来您在某处输入了额外的逗号。
-
它可能在哪里?我已经在上面列出了源代码。
-
@DrTyrsa,你是对的!它在我的 setting.py 文件中
标签: django image-uploading modelform imagefield