首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不显示在Django中手动保存到另一个模型的路径的图像

不显示在Django中手动保存到另一个模型的路径的图像
EN

Stack Overflow用户
提问于 2014-11-27 05:15:52
回答 1查看 47关注 0票数 0

我有两个ImageField模型。我正在使用sorl-thumbnail生成缩略图。第一个模型有一个绑定到它的表单,而第二个模型在保存时从第一个模型中填充它的ImageField

models.py

代码语言:javascript
复制
#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

代码语言:javascript
复制
class ImageForm(forms.ModelForm):
  class Meta:
    model = NewImage
    fields = {'thumbnail'}

views.py

代码语言:javascript
复制
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)

这显示了我的形象:

代码语言:javascript
复制
{% thumbnail image.thumbnail "200x100" crop="center" as im %}
    <img src="..{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}

但它只显示一个方框:

代码语言:javascript
复制
{% thumbnail user.thumbnail "200x100" crop="center" as im %}
    <img src="..{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}

这两个图像都有一个链接到在缓存文件夹中创建的图像sorl-thumbnail

为什么会发生这种情况,如何显示我的user.thumbnail

EN

回答 1

Stack Overflow用户

发布于 2014-11-27 05:37:18

试试这个:

代码语言:javascript
复制
user.thumbnail = upload_image.thumbnail.name
user.save()

还有一件事:

不执行upload_image.time_created = timezone.now(),您可以更改模型以包含auto_now_add=True,这将自动将time_created保存到实际创建的时间。就像这样:

代码语言:javascript
复制
class NewImage(models.Model):
    thumbnail = models.ImageField(upload_to='photos')
    time_created = models.DateTimeField(auto_now_add=True)

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27163526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档