Django: Как указать URL в качестве slug в шаблоне django?

Я пытаюсь создать шаблон django, в котором есть ссылки на другие страницы (в частности, статические изображения, каждое со своим собственным html-шаблоном), но я пытаюсь уйти от жесткого кодирования url и представления для каждой из них, вместо этого я хочу захватить их все с общим URL slug и представлением, которое принимает slug как вход.

Мой URL slug в urls.py работает нормально, когда я вручную ввожу поле slug в полный URL, он ссылается на правильный шаблон и направляет меня на нужную страницу. Однако когда я пытаюсь сослаться на любую из ссылок как на slug из шаблона 'cside', я продолжаю получать ошибку:

NoReverseMatch at /plots/cside
Reverse for '2E_C' not found. '2E_C' is not a valid view function or pattern name.

В основном, я хочу, чтобы на странице 'cside' были ссылки, которые являются слизнями.

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

Вот мой urls.py

from django.urls import re_path, path
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from . import views
from .views import mode

urlpatterns = [
    re_path(r'^cside$', views.cside, name='cside'),
    re_path(r'^lside$', views.lside, name='lside'),
    re_path(r'^home$', views.home, name='home'),

    #re_path(r'^2E_C$', views.m2E_C),
    re_path(r'^4M_C$', views.m4M_C),
    re_path(r'^6E_C$', views.m6E_C),
    re_path(r'^6M_C$', views.m6M_C),
    re_path(r'^8E_C$', views.m8E_C),

    re_path(r'^2E_L$', views.m2E_L),
    re_path(r'^4M_L$', views.m4M_L),
    re_path(r'^6E_L$', views.m6E_L),
    re_path(r'^6M_L$', views.m6M_L),
    re_path(r'^8E_L$', views.m8E_L),
    #re_path(r'^(?P<slug>[-\w]+)/$', views.mode, name='mode'),
    path('<slug:slugIn>/', views.mode, name='mode')   
]

Вот мой views.py

from django.views.generic import TemplateView, ListView
from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader

from django.shortcuts import get_object_or_404, render
from django.urls import reverse
from django.views import generic, View
from .models import Mode

def cside(request):
        template = loader.get_template('cside.html')
        context = {}
        return HttpResponse(template.render(context, request))

def lside(request):
        template = loader.get_template('lside.html')
        context = {}
        return HttpResponse(template.render(context, request))

def home(request):
        template = loader.get_template('home.html')
        context = {}
        return HttpResponse(template.render(context, request))


# Slug Solution
#======================================

def mode(request, slugIn=None):
        model = Mode
        #print(slugIn)
        slugOut = Mode.objects.all()
        #print(slugOut)
        template = loader.get_template(slugIn+'.html')
        context = {"slug": slugOut}
        return HttpResponse(template.render(context, request))


# Hardcoded Old Solution
#======================================

# def m2E_C(request):
#         template = loader.get_template('2E_C.html')
#         context = {}
#         return HttpResponse(template.render(context, request))
def m400M_C(request):
        template = loader.get_template('4M.html')
        context = {}
        return HttpResponse(template.render(context, request))
def m6E_C(request):
        template = loader.get_template('6E_C.html')
        context = {}
        return HttpResponse(template.render(context, request))
def m6M_C(request):

...

и вот html шаблон для страницы, с которой у меня проблемы

<!DOCTYPE html
<html><head>
    <style type="text/css">
    a { color:#005fce; text-decoration:none; font-weight:normal;}
    c { color:#000000; text-decoration:none; font-weight:bold;}

</style>
</head>
<body><div class="content">
    <h1>C SIDE</h1><br>
    <a href="{% url 'home' %}">Home</a><br><br>
    
    <c>TYPES:</c><br>   
    
    <a href="{% url '2E_C' slug.slug %}">2E</a><br>

    <a href="{% url '4M_C' %}">4M</a><br>    
    <a href="{% url '6E_C' %}">6E</a><br>    
    <a href="{% url '6M_C' %}">6M</a><br>    
    <a href="{% url '8E_C' %}">8E</a><br>

Я думаю, что моя проблема в том, что я не могу передать поле ввода slug из url в файл шаблона, чтобы затем знать, куда идти...

Возможно, мне нужно использовать модель для сохранения пули, но я тоже не смог понять, как это сделать

Ваш url назван mode, поэтому вам нужно изменить вашу ссылку на {% url ‘mode’ ‘2E_C’ %}.

Вернуться на верх