我在Django中有一个简单的模型:
class Test(models.Model):
user = models.ForeignKey(User, null=True, blank=True)
title = models.CharField(max_length=180, unique=True)
file1 = models.FileField(upload_to=download_loc)
preview = models.FileField(upload_to=preview_loc)
file1是一个文件,我在客户端动态生成a"预览" of file1(jpg图片)。
我试图在同一表单上上传其中两个,但我找不到一个简单的方法来做到这一点。 我怎么能用Jquery做到这一点?
这是我所拥有的表格的类:
class TestForm(ModelForm):
class Meta:
model = Test
fields = ('title', 'file1') # I don't want to put preview here because it should be done without the user intervention (I don't want the user to see a button with choose file for the preview)
非常感谢!
答案 0 :(得分:1)
如果您确实希望将缩略图生成集成到模型级别,请使用django-imagekit
https://pypi.python.org/pypi/django-imagekit
示例:
from django.db import models
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFill
class Profile(models.Model):
avatar = models.ImageField(upload_to='avatars')
avatar_thumbnail = ImageSpecField(source='avatar',
processors=[ResizeToFill(100, 50)],
format='JPEG',
options={'quality': 60})
profile = Profile.objects.all()[0]
print profile.avatar_thumbnail.url # > /media/CACHE/images/982d5af84cddddfd0fbf70892b4431e4.jpg
print profile.avatar_thumbnail.width # > 100
虽然在大多数情况下你不应该将预览添加到模型中,因为Django中有很多用于动态生成缩略图的包(在模板级别上):