我有两个ImageField模型。我正在使用sorl-thumbnail生成缩略图。第一个模型有一个绑定到它的表单,而第二个模型在保存时从第一个模型中填充它的ImageField。
models.py
#the first model
class NewImage(models.Model):
thumbnail = models.ImageField(upload_to='photos')
time_created = models.DateTimeField()
#second
class Users(models.Model):
name = models.CharField(max_length=100)
address = models.CharField(max_length=200)
thumbnail = models.ImageField(upload_to='photos')
time_created = models.DateTimeField()forms.py
class ImageForm(forms.ModelForm):
class Meta:
model = NewImage
fields = {'thumbnail'}views.py
def saveImage(request):
if request.method == 'POST':
user = Users.objects.get(id = 1)
imageForm = ImageForm(request.POST, request.FILES or None)
if imageForm.is_valid():
upload_image = imageForm.save(commit=False)
upload_image.time_created = timezone.now()
upload_image.save()
#save image path to user who uploaded it.
user.thumbnail = upload_image.thumbnail
user.save()如果我将这些传递给我的模板:image = NewImage.objects.get(id = 1)和user = Users.objects.get(id = 1)。
这显示了我的形象:
{% thumbnail image.thumbnail "200x100" crop="center" as im %}
<img src="..{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}但它只显示一个方框:
{% thumbnail user.thumbnail "200x100" crop="center" as im %}
<img src="..{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}这两个图像都有一个链接到在缓存文件夹中创建的图像sorl-thumbnail。
为什么会发生这种情况,如何显示我的user.thumbnail?
发布于 2014-11-27 05:37:18
试试这个:
user.thumbnail = upload_image.thumbnail.name
user.save()还有一件事:
不执行upload_image.time_created = timezone.now(),您可以更改模型以包含auto_now_add=True,这将自动将time_created保存到实际创建的时间。就像这样:
class NewImage(models.Model):
thumbnail = models.ImageField(upload_to='photos')
time_created = models.DateTimeField(auto_now_add=True)希望能帮上忙。
https://stackoverflow.com/questions/27163526
复制相似问题