【问题标题】:Saving a Cloudinary object to a Django Model将 Cloudinary 对象保存到 Django 模型
【发布时间】:2018-01-04 18:54:10
【问题描述】:

我有一个模型:

from cloudinary.models import CloudinaryField

class Image(models.Model):
    image = CloudinaryField('image')

还有一个我从 Cloudinary 收到的对象。这是 Cloudinary 在我上传图片后给我的,然后我将它传回了我的服务器:

{'etag': ['***'], 'version': ['***'], 'public_id': ['***'], 'type': ['upload'], 'signature': ['***'], 'created_at': ['2017-07-28T15:54:17Z'], 'secure_url': ['https://res.cloudinary.com/***/***.png'], 'height': ['353'], 'format': ['png'], 'resource_type': ['image'], 'url': ['http://res.cloudinary.com/***/image/upload/***/***.png'], 'width': ['684'], 'bytes': ['133509']}

我似乎无法将它保存到我的模型中。我已经尝试过直接保存它并通过 Cloudinary 文档中的 CloudinaryJsFileField 表单将其放入。两者似乎都不起作用。表单感叹“没有选择文件”,而 model.create() 工作抱怨缺少属性。

这是我使用的表格:

class PhotoDirectForm(ModelForm):

    class Meta:
        model = Image
        fields = ['image']

我尝试过使用CloudinaryJsFileField 和不使用CloudinaryJsFileField,无论哪种方式我都会遇到相同的错误:

<tr><th><label for="id_image">Image:</label></th><td><ul class="errorlist"><li>No file selected!</li></ul><input type="file" name="image" required id="id_image" /></td></tr>

显然它想要一个文件,但这不是 Cloudinary 在我上传图片后给我的!

有人知道如何将 Cloudinary 对象保存到 Django 数据库吗?

【问题讨论】:

    标签: django cloudinary


    【解决方案1】:

    您检查过Photo album 示例项目吗?

    那里的流程 -

    views.py -

    form = PhotoForm(request.POST, request.FILES)
    ...
    form.save()
    

    forms.py -

    class PhotoForm(ModelForm):
    class Meta:
        model = Photo
        fields = '__all__'
    

    models.py -

    class Photo(models.Model):
    ## Misc Django Fields
    create_time = models.DateTimeField(auto_now_add=True)
    title = models.CharField("Title (optional)", max_length=200, blank=True)
    
    ## Points to a Cloudinary image
    image = CloudinaryField('image')
    

    这应该将图像同时保存在 Cloudinary 和您的存储中。

    【讨论】:

      猜你喜欢
      • 2021-03-24
      • 2015-07-07
      • 2018-03-25
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      相关资源
      最近更新 更多