Видео файл на Django сайте как смотреть фильмы - PullRequest
0 голосов
/ 04 февраля 2020

enter image description here Привет, все пытаются добавить в мой проект возможность просмотра фильмов в приложении "FIlmy". И я не знаю, что я делаю неправильно, но он показывает только черное окно без загрузки.

Мои модели:

          class Video(models.Model):
               name = models.ForeignKey(Movie, on_delete=models.CASCADE)
               file = models.FileField(upload_to='films_image/', null=True, verbose_name="")

Мои просмотры:

           @login_required
           def showvideo(request):
               firstvideo = Video.objects.last()
               videofile = firstvideo.videofile

               return render(request, "MyPage/MovieDetail.html", {'videofile': videofile})

Мой шаблон:

           <h3><b>Clip</b></h3>


            <br>
            <video width='400' controls>
                   <source src='{{ videofile }}' type='video/mp4'>
                    Your browser does not support the video tag.
            </video>

Возможно, у меня ошибка источника, и я не знаю, что я делаю неправильно

Я добавил в свои URL-адреса

                ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

И мои настройки:

                 MEDIA_URL = os.path.join(BASE_DIR, 'media/')

                 MEDIA_ROOT = '/media/'

Я добавил файл к своему внешнему ключу Mov ie, и теперь я хочу, чтобы заголовок mov ie просматривался в моем шаблоне

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Попробуйте изменить источник на

<source src='{{ videofile.url }}' type='video/mp4'>

Также измените ваш views.py как

@login_required
def showvideo(request):
    firstvideo = Video.objects.last()
    videofile = firstvideo.file  # <-- As your model FileField name is 'file' and not videofile.

    return render(request, "MyPage/MovieDetail.html", {'videofile': videofile})
0 голосов
/ 04 февраля 2020

Django s FileField имеет атрибут url, который вы можете использовать в шаблоне для получения URL файла:

<source src='{{ videofile.url }}' type='video/mp4'>

Также вам следует изменить настройки на этот :

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

В вашем коде MEDIA_ROOT и MEDIA_URL перепутаны.

...