Трудность воспроизведения / понимания видео в Джанго - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь воспроизвести видео, которое я, как администратор, загружу в модель для воспроизведения на моей домашней странице.Возможно, позже я дам пользователям возможность загружать свои собственные видео, но сейчас я просто сосредоточен на этой основной возможности.Моя проблема в том, что я не могу получить видео для рендеринга на странице.Возможно, мой видеофайл загружается в неправильный каталог, или мой HTML-файл указывает на неправильный каталог.Однако, когда я получаю доступ к администратору и нажимаю на загруженный файл, Django показывает видеоокно с пересекающейся кнопкой воспроизведения, поэтому кажется, что администратор Django также не может получить доступ к видео.

Вот моя модель:

 class Video(models.Model):
name = models.CharField(max_length=100, null=True, blank=True)
file = models.FileField(null=True, blank=True, upload_to='videos')

def __str__(self):
    return self.name

Вот мой взгляд:

 class home(generic.ListView):
model = VideoModel
template_name = 'hide/base.html'

def get_queryset(self):
    v = VideoModel.objects.filter(name='Video 1')
    return v

* Возможно, проблема в представлении и запросе.Я не уверен, что запрос видеофайла - это то же самое, что запрос CharField или чего-то еще.

В моем каталоге проекта у меня есть папка мультимедиа и статическая папка.В папке мультимедиа у меня есть папка с видео, и именно туда загружается видео.Из того, что я прочитал в Stackedoverflow, я должен загружать видеофайлы администратора в статическую папку, а не в папку media?Все еще не уверен, почему видео не может быть воспроизведено в администраторе Django.

И последнее, но не менее важное: html:

                {% for video in object_list %}
                    <div class="pane2">
                        <video id="intro" type="video/mp4" controls preload autoplay>
                            <source src="{{STATIC_URL}}videos/Video1.mp4" type="video/mp4"></source>
                        </video>
                    </div>
                {% endfor %

Дайте мне знать, если вам нужна дополнительная информация.Спасибо.

1 Ответ

0 голосов
/ 02 июня 2018

Этот вопрос на самом деле не имеет ничего общего с видео.

Для начала, STATIC_URL для ресурсов, которые, ну, в общем, статичны - то есть они предоставляются с приложением и неменять.Для вещей, которые динамически загружаются пользователями, они действительно сохраняются в папке мультимедиа, поэтому вам понадобится MEDIA_URL.

Во-вторых, вы фактически не используете значение из экземпляра модели.Ваш шаблон должен выполнять итерацию по элементам в списке объектов, который вы отправляете из представления, и для каждого из них должен быть доступ к его атрибуту video.

Когда вы делаете это, вы можете фактически использовать поле файлаurl атрибут, который вообще исключает необходимость использования MEDIA_URL.

{% for video in object_list %}
    <video id="intro" type="video/mp4" controls preload autoplay>
        <source src="{{ video.file.url }}" type="video/mp4">
    </video>
{% endfor %}

И, наконец, вам нужно что-то, что на самом деле обслуживает ваши медиа-файлы в MEDIA_URL;Джанго не сделает этого за тебя.Только в разработке вы можете настроить сервер разработчика, чтобы сделать это ;в производственном процессе вам нужно настроить сервер, чтобы он делал это напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...