如何在模板中显示存储在Django数据库中的youtube url

2024-04-24 16:51:21 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我所做的工作,我还没有收到任何视频错误

我一直在遵循jazzband的django embed video教程,一切都设置好了,我在数据库中上传了url,但在运行数据库时,我的模板中没有显示任何视频。这是抛出错误

 file "\env\lib\site-packages\embed_video\templatetags\embed_video_tags.py", 
  line 196, in embedbackend = cls.get_backend(url, context=context, **options)
  
File "\env\lib\site-packages\embed_video\templatetags\embed_video_tags.py", 
   line 174, in get_backend else detect_backend(str(backend_or_url))

  File "\env\lib\site-packages\embed_video\backends.py", line 64, in detect_backend
    raise UnknownBackendException embed_video.backends.UnknownBackendException

这里是/app/models.py

class youtube(models.Model):
video = EmbedVideoField(default="")
def __str__(self):
    return self.video

/app/views.py

  from .models import youtube
    def display_video(request):
    videos = youtube.objects.all()
    context = {'video': videos}
    return render (request, 'library.html', context)

library.html

{% load embed_video_tags %}
{% video item.video 'small' %}
{% block content %}
{% if videos %}
    {% for v in videos %}
    {{ v.video }}
    {% endfor %}
    {% else %}
    <p>No videos yet</p>
{% endif %}
{% endblock %}

/myproject/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',
    'embed_video',
]

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['template'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                **'django.contrib.messages.context_processors.messages',**
             

            ],
        },
    },
]

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

Tags: djangoinpyenvbackendurllibvideo