当我通过媒体网址播放上传的媒体文件时,在Django中出现错误

时间:2019-12-12 05:38:18

标签: python django

这是我的models.py文件:

class ForumThread(models.Model):
    owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    content = models.CharField(max_length=500)
    thread_video = models.FileField(upload_to='forum_videos')
    slug = models.CharField(max_length=200, editable=False, blank=True)

    def __str__(self):
        return str(self.owner) + '-' + str(self.title)

这是我用来上传视频以及其他模型数据的FormView代码:

def handle_uploaded_file(f):
    with open('media/forum_videos/' + str(f), 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)

class CreateThread(FormView):
    form_class = ThreadForm
    template_name = 'forum/create_thread.html'
    success_url = 'home'

    def form_valid(self, form):
        forum_obj = form.save(commit=False)
        forum_obj.owner = self.request.user
        forum_obj.slug = slugify(forum_obj.title)

        handle_uploaded_file(self.request.FILES['thread_video'])
        forum_obj.save()
        return HttpResponseRedirect(reverse('blog:list'))

    def form_invalid(self, form):
        print('Some errors occurred..')
        return HttpResponse('Some errors on the page')

这是我通过媒体网址打开上传的视频时遇到的错误。例如:

http://localhost:8000/media/forum_videos/16.Using_value_counts.mp4

而且很明显,这个错误也出现在详细信息页面上,我想在该页面上显示视频以及模型帖子的其他详细信息。我在另一个Django项目中也遇到了与“音频”文件相同的错误。关于如何解决这个问题的任何想法?季节性的Django用户提供的任何帮助将不胜感激,我感到很困惑。

11/Dec/2019 21:27:53] "GET /media/forum_videos/16.Using_value_counts.mp4 HTTP/1.1" 200 7405568
Traceback (most recent call last):
  File "C:\Python36\lib\wsgiref\handlers.py", line 138, in run
    self.finish_response()
  File "C:\Python36\lib\wsgiref\handlers.py", line 180, in finish_response
    self.write(data)
  File "C:\Python36\lib\wsgiref\handlers.py", line 279, in write
    self._write(data)
  File "C:\Python36\lib\wsgiref\handlers.py", line 453, in _write
    result = self.stdout.write(data)
  File "C:\Python36\lib\socketserver.py", line 800, in write
    self._sock.sendall(b)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
[11/Dec/2019 21:27:53] "GET /media/forum_videos/16.Using_value_counts.mp4 HTTP/1.1" 500 59
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 58947)
Traceback (most recent call last):
  File "C:\Python36\lib\wsgiref\handlers.py", line 138, in run
    self.finish_response()
  File "C:\Python36\lib\wsgiref\handlers.py", line 180, in finish_response
    self.write(data)
  File "C:\Python36\lib\wsgiref\handlers.py", line 279, in write
    self._write(data)
  File "C:\Python36\lib\wsgiref\handlers.py", line 453, in _write
    result = self.stdout.write(data)
  File "C:\Python36\lib\socketserver.py", line 800, in write
    self._sock.sendall(b)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python36\lib\wsgiref\handlers.py", line 141, in run
    self.handle_error()
  File "C:\Python36\lib\site-packages\django\core\servers\basehttp.py", line 116, in handle_error
    super().handle_error()
  File "C:\Python36\lib\wsgiref\handlers.py", line 368, in handle_error
    self.finish_response()
  File "C:\Python36\lib\wsgiref\handlers.py", line 180, in finish_response
    self.write(data)
  File "C:\Python36\lib\wsgiref\handlers.py", line 274, in write
    self.send_headers()
  File "C:\Python36\lib\wsgiref\handlers.py", line 331, in send_headers
    if not self.origin_server or self.client_is_modern():
  File "C:\Python36\lib\wsgiref\handlers.py", line 344, in client_is_modern
    return self.environ['SERVER_PROTOCOL'].upper() != 'HTTP/0.9'
TypeError: 'NoneType' object is not subscriptable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python36\lib\socketserver.py", line 651, in process_request_thread
    self.finish_request(request, client_address)
  File "C:\Python36\lib\socketserver.py", line 361, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "C:\Python36\lib\socketserver.py", line 721, in __init__
    self.handle()
  File "C:\Python36\lib\site-packages\django\core\servers\basehttp.py", line 171, in handle
    self.handle_one_request()
  File "C:\Python36\lib\site-packages\django\core\servers\basehttp.py", line 194, in handle_one_request
    handler.run(self.server.get_app())
  File "C:\Python36\lib\wsgiref\handlers.py", line 144, in run
    self.close()
  File "C:\Python36\lib\site-packages\django\core\servers\basehttp.py", line 111, in close
    super().close()
  File "C:\Python36\lib\wsgiref\simple_server.py", line 35, in close
    self.status.split(' ',1)[0], self.bytes_sent
AttributeError: 'NoneType' object has no attribute 'split'
----------------------------------------

0 个答案:

没有答案