使用Djangorest中的mongoengine.Imagefield上传图片将无法保存

时间:2017-07-29 16:59:42

标签: python django django-forms django-rest-framework mongoengine

我想在DJango中使用mongoengine创建一个图像字段。表单显示,我上传图像,除了图像之外保存所有其他字段但是它一直为thumbnail_new字段说“此字段是必需的”。这是我的模特

class VideoMain(Document):
"""This class represents the Video Meta data model."""
    video_id = fields.SequenceField()
    ytlink = fields.StringField()
    title = fields.StringField()
    description =fields.StringField()
    show = fields.StringField()
    published_at = forms.DateTimeField()
    views = fields.IntField()
    thumbnail = fields.StringField()
    **thumbnail_new = fields.ImageField(size=600,thumbnail_size=None)**
    channel_name = fields.StringField()
    channel_description = fields.StringField()
    guests = fields.ListField(fields.StringField(max_length=30))
    anchors = fields.ListField(fields.StringField(max_length=30))
    tags = fields.ListField(fields.StringField(max_length=30))

这是Django表格

from django import forms
from .models import *
class ShowDetailsForm(forms.Form):
    shows = Show.objects.all()
    title = forms.CharField()
    description = forms.CharField()
    channel = forms.CharField()
    publishingdate = forms.CharField()
    views = forms.IntegerField()
    thumbnail = forms.CharField()
    thumbnail_new = forms.ImageField()
    #show = forms.ChoiceField(shows)
    class Meta:
        model = VideoMain
        fields="__all__"

最后是必须存储表单的视图函数

def show_video_data(request):
"""
View function for renewing a specific BookInstance by librarian"""
if request.method == 'POST':
    #print("I am post")
    form = ShowDetailsForm(request.POST,request.FILES)
    if form.is_valid():         
        newfile=FileUploadHandler(title='anything', file=request.FILES['thumbnail_new'])
        newfile.save()
        print (form.photo)
        # do saving #
        form.save()
        return HttpResponseRedirect('/fetchvideodata')

我是django的新手,所以请承担如果有一个愚蠢的错误。我找不到使用mongoengine和django形式的解决方案或教程。我在模型collection_name="thumbs"中指定**kwargsthumbnail_new = fields.ImageField(size=600,thumbnail_size=None)时也遇到错误。

0 个答案:

没有答案