这是我的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'
----------------------------------------