2017-07-28 99 views
0

我有一个模型:保存Cloudinary对象到的Django模型

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()工作投诉了一个缺失的属性。

这是我使用的形式:我既没有CloudinaryJsFileField试过

class PhotoDirectForm(ModelForm): 

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

,我也得到了同样的错误两种方式:

<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数据库?

回答

0

您是否检查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和你的仓库里都有图像GE。