Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python脚本将视频上载到Django模型文件字段_Python_Django_Django Models_Python Requests - Fatal编程技术网

使用Python脚本将视频上载到Django模型文件字段

使用Python脚本将视频上载到Django模型文件字段,python,django,django-models,python-requests,Python,Django,Django Models,Python Requests,我试图用下面的python脚本将一个小视频文件(10mb)上传到Django模型文件字段。我有一个表单设置,但希望在脚本继续运行时绕过它。当我运行脚本时,我得到http响应200,但视频文件没有出现在相关文件夹中。有什么问题 pythonscript.py # uplaod video file to django model f = open('/path/to/video.mp4', 'rb') urls='http://127.0.0.1:8000/showvideo' r=requ

我试图用下面的python脚本将一个小视频文件(10mb)上传到Django模型文件字段。我有一个表单设置,但希望在脚本继续运行时绕过它。当我运行脚本时,我得到http响应200,但视频文件没有出现在相关文件夹中。有什么问题

pythonscript.py 

# uplaod video file to django model 
f = open('/path/to/video.mp4', 'rb')
urls='http://127.0.0.1:8000/showvideo'
r=requests.post(urls, files= {'videofile':f})
print(r.status_code)

我玩了一下,意识到名称字段干扰了上传。我从models.py和forms.py中删除了name字段,视频文件现在已成功上载并显示在相关文件夹中

models.py

from django.db import models

class VideoUpload(models.Model):
    videofile= models.FileField(upload_to='videos/', null=True, verbose_name="")

    def __str__(self):
        return self.name + ": " + str(self.videofile)

我玩了一下,意识到名称字段干扰了上传。我从models.py和forms.py中删除了name字段,视频文件现在已成功上载并显示在相关文件夹中

models.py

from django.db import models

class VideoUpload(models.Model):
    videofile= models.FileField(upload_to='videos/', null=True, verbose_name="")

    def __str__(self):
        return self.name + ": " + str(self.videofile)

我现在对此解决方案有问题。异常类型:AttributeError异常值:“VideoUpload”对象没有添加
name=models的属性“name”。CharField(max_length=500)
返回到models.py似乎可以解决此问题。我现在有此解决方案的问题。异常类型:AttributeError异常值:“VideoUpload”对象没有属性“name”,添加
name=models.CharField(max_length=500)
返回models.py似乎可以解决此问题。
views.py

from django.shortcuts import render
from .models import VideoUpload
from .forms import VideoForm
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse

@csrf_exempt
def showvideo(request):

    lastvideo= VideoUpload.objects.last()

    videofile = lastvideo.videofile if lastvideo else None

    form= VideoForm(request.POST or None, request.FILES or None)
    if form.is_valid():
        form.save()


    context= {'videofile': videofile,
              'form': form
              }


    return render(request, 'video.html', context)
models.py

from django.db import models

class VideoUpload(models.Model):
    videofile= models.FileField(upload_to='videos/', null=True, verbose_name="")

    def __str__(self):
        return self.name + ": " + str(self.videofile)
forms.py

from django import forms
from .models import VideoUpload


class VideoForm(forms.ModelForm):

    class Meta:
        model = VideoUpload
        fields = ["videofile"]