- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个带有图片上传功能的大型应用程序。
这是我的模型:
class GallryImage(models.Model):
# ...
image = models.ImageField(max_length=255, upload_to='gallery', height_field='width', width_field='height')
width = models.IntegerField()
height = models.IntegerField()
# ...
这是我处理上传的方式:
image_name = 'image.png';
destination = open(settings.MEDIA_ROOT + '/gallery/' + image_name, 'wb+')
for chunk in f.chunks():
destination.write(chunk)
destination.close()
这段代码有点违反了 DRY 原则——路径 gallery
重复了两次。
问题:如何重用我在模型中指定的路径 (upload_to='gallery'
),这样我就不必在上传处理程序中重复?
我正在使用 python 2.6 和 Django 1.3 beta。
谢谢!
基于 Paulo 回答的解决方案
保存模型实例时,文件会自动上传,所以我要做的就是:
def add(request):
from forms import ImageAddForm
form = ImageAddForm()
if request.method == 'POST':
form = ImageAddForm(request.POST, request.FILES)
if form.is_valid():
image = GalleryImage(
image = form.cleaned_data['image']
)
image.save() # file is uploaded to upload_to dir!
return HttpResponseRedirect(reverse('image_add') + '?image_added=')
else:
form = ImageAddForm()
return render_to_response('gallery/add.html',
locals(),
context_instance=RequestContext(request))
最佳答案
forms framework应该为你处理这个。除非您想将文件存储在文件系统以外的某个容器中,否则无需手动保存文件。
class UploadImageForm(forms.ModelForm):
class Meta:
model = GallryImage
...
# Sample view
def upload_file(request):
if request.method == 'POST':
form = UploadImageForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/success/url/')
else:
form = UploadImageForm()
return render_to_response('upload.html', {'form': form})
关于python - Django:如何使用 ImageField 的 upload_to 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5005181/
我需要从表单中裁剪出抢救出来的图片,存入model.ImageField 我的模型.py class Story(models.Model): creator = models.ForeignKe
我现在尝试了几个小时来使用 South 进行最愚蠢的迁移,但不知何故,我一直在悲惨地失败......我正在尝试迁移到 Sorl-Thumbnail。 这是我的过渡模型: class Deal(mode
我正在创建一个 django 项目,其中我使用 ImageField 将图片(图像)存储在数据库中... original_pic = models.ImageField() 另外,我想存储一个包含相
我正在尝试将自定义 upload_to 函数传递给我的模型 imageField 但我想将该函数定义为模型函数....这可能吗? class MyModel(models.Model): ..
我正在尝试使用 Django 2.0。我现在正在使用开发“runserver”,所以请记住我还没有投入生产。我熟悉两者在静态文件方面的区别。 我有一个博客文章模型。在管理员中,我希望能够使用 Imag
我正在尝试检测对 ImageField 的更改,以便以编程方式将更改与 Hg 同步。包含 ImageField 的模型正在使用 Django 多语言进行本地化,因此我必须单独检测每个字段的更改,而不是
我的models.py中有以下图像字段(见下面的代码) 我要集 图像的固定宽度和高度,所以它总是 100x100px 下面的代码是系统中已有的代码,我不确定宽度和高度是如何传递的,或者此代码是否可用于
我一直在尝试实现为个人用户更改头像的图片上传。我现在遇到的问题是它永远不会上传到文件夹中。它适用于管理员,但不适用于我创建的模板 views.py if 'avatar_upload' in requ
我有一个模型和一个表单 (forms.ModelForm),其中有一个 ImageField。该模型类似于: class Business(models.Model): business_na
我一直在尝试实现为个人用户更改头像的图片上传。我现在遇到的问题是它永远不会上传到文件夹中。它适用于管理员,但不适用于我创建的模板 views.py if 'avatar_upload' in requ
我有一个程序在后台运行,它将图像输出到我的服务器上的特定文件夹,并且这可能会以不同的时间间隔发生。我需要能够在模板上显示这些图像,因此我想使用 ImageField 将它们保存到数据库中。 我的问题是
保存模型“产品”后,我希望上传的图像与 pk 的名称相同,例如 22.png 或 34.gif 我不想仅更改名称的图像格式。如何才能做到这一点?到目前为止我的模型示例...... image = mo
我有模型 UserProfile 和字段 avatar = models.ImageField(upload_to=upload_avatar) upload_avatar 函数根据user.id 命
我正在使用 Django 构建个人摄影网站。我正在处理 models.py。我的应用名为“photoViewer”,网站名为“photoSite”。但是,当我运行 makemigrations 时,我
我有一个问题,我的模型中有一个ImageField,我想从url示例http://www.google.com/images/logos/ps_logo2.png上传此图像,我该怎么做? 谢谢 ! 最
我将原始数据数组 (RGBA8888) 从应用程序(C++ 中)发送到以 base64 编码的 http 发布数据中的 django 服务器,例如: field1=value1&prof_img=KS
我已经配置了 MEDIA_ROOT 和 MEDIA_URL 并且工作正常。我的 MEDIA 文件存储在名为 /media/ 的目录中,现在我想将新上传的 文件存储到新目录(例如。/media2/) 而
我想在我的模型的管理表单中有一个 ImageField(例如,个人资料)。我想稍后在 View 中显示此图像。 这是我的模型: class Individual(models.Model):
我是 Django 的新手。我在文档和这个网站上阅读了很多关于我的问题的内容。但我真的不明白我该怎么做才能做到这一点。有人可以告诉我所有步骤吗? model.py: class Post(models
我正在寻找一种在保存 ImageField 时调整大小、压缩和优化上传图像的方法。 class Image(models.Model): name = models.CharField(max
我是一名优秀的程序员,十分优秀!