Por alguna razón, Django no está recogiendo una determinada plantilla y no estoy seguro de por qué.

Vínculo en navbar.html

<a class="dropdown-item" href="/course/posts/{{ course.slug }}">{{ course.title }}</a>

views.py

def posts(request, course_slug, *args, **kwargs):
    course = Course.objects.get(slug=course_slug)
    posts = Post.objects.filter(course__id=course.id)
    courses = Course.objects.all()

    context = {
        'posts' : posts,
        'courses' : courses,
    }

    return render(request, "course/posts.html", context)

urls.py

from django.conf.urls import url

from . import views
from . import admin_views

app_name = 'course'

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^posts/(?P<course_slug>\w+)$', views.posts, name='posts'),
    url(r'^admin/course/create$', admin_views.create, name='create'),
    url(r'^admin/course/update/(?P<post_id>[0-9]+)$', admin_views.update, name='update')
]

Actualización : acabo de encontrar la respuesta. Mi expresión regular estaba mal y, como resultado, no reconocería mi cadena. Votaré la respuesta para cerrar la pregunta. ¡Gracias a todos los que vinieron a ayudar!

0
waifuxszn 29 ago. 2020 a las 11:20

1 respuesta

La mejor respuesta

Cambiar href en navbar.html

<a class="dropdown-item" href="{% url 'course:posts' %}">{{ course.title }}</a>
0
noob 29 ago. 2020 a las 09:10