Рендеринг пользовательских html-шаблонов в Django
Я не эксперт в Django, но это программное обеспечение написано на Django с использованием фреймворка rest, и мне нужно внести в него изменения: https://github.com/openvinotoolkit/cvat/tree/develop/cvat
Мне нужно создать пользовательский html-шаблон, и вот что я сделал на данный момент. Я создал новую папку в apps под названием custom с этими файлами:
cvat/apps/custom/templates/custom/<name>.html
(в custom есть различные html шаблоны с разными "именами". т.е. a.html, b.html, c.html и т.д.)
Другие файлы в cvat/apps/custom
:
cvat/apps/custom/__init_.py
cvat/apps/custom/apps.py
from django.apps import AppConfig
class CustomConfig(AppConfig):
name = 'cvat.apps.custom'
cvat/apps/custom/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('custom/<str:name>', views.CustomView),
]
cvat/apps/custom/views.py
from django.shortcuts import render
def CustomView(request, name):
return render(request, 'custom/'+name+'.html')
Кроме того, я изменил эти существующие файлы, чтобы добавить папку custom
, которая была создана в apps
:
https://github.com/openvinotoolkit/cvat/blob/develop/cvat/urls.py#L27
добавлено path('custom/', include('cvat.apps.custom.urls')),
:
urlpatterns = [
path('admin/', admin.site.urls),
path('custom/', include('cvat.apps.custom.urls')),
path('', include('cvat.apps.engine.urls')),
path('django-rq/', include('django_rq.urls')),
]
https://github.com/openvinotoolkit/cvat/blob/develop/cvat/settings/base.py#L129
INSTALLED_APPS = [
...
'cvat.apps.custom'
]
Однако, когда я перехожу на http://localhost:8080/custom/custom/a
.
я получаю перенаправление на другую страницу - не a.html Любой совет о том, что я делаю неправильно?
Вы можете попробовать что-то вроде этого
url может иметь следующий вид
urlpatterns = [
path('custom/<name>/', views.CustomView),
]
и ваш вид должен выглядеть следующим образом.
def CustomView(request, name):
return render(request, f'custom/{name}.html')
Надеюсь, это поможет вам.