'Django: error trying to access detail view with re_path

To elaborate, I went down a bit of a rabbit hole just trying to make a trailing "/" optional in the URL. got it to sorta work with the project directory, but when on the blog app, I tried to use re_path in order to use regex to allow for an optional trailing "/" in the url, but I seem to get an error in the template

website urls.py (directory with settings.py)

from django.contrib import admin
from django.urls import path, include, re_path
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('main.urls')),
    path('blog/', include('blog.urls')),
    path('blog', include('blog.urls'))
    
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

blog urls.py

from django.urls import path, include, re_path
from .views import BlogView, ArticleView

urlpatterns = [
    path('', BlogView.as_view(), name="blog"),
    re_path(r'titles/(?P<slug_url>\d+)/?$', ArticleView, name="article")
]

blog.html template error appears at the href

{% extends 'base.html' %}

{% block content %}
<h1>Articles</h1>
{% for post in object_list %}
    <h2><a href="{% url 'article' post.url_slug %}">{{ post.title }}</a></h2>
{% endfor %}
{% endblock %}

blog views.py

from django.shortcuts import render, get_object_or_404, redirect
from .models import Post
from django.views.generic import ListView, DetailView, CreateView, UpdateView, DeleteView

from django.urls import reverse_lazy, reverse
from django.http import HttpResponseRedirect

# Create your views here.

class BlogView(ListView):  
    model = Post
    template_name = 'blog.html'

def ArticleView(request, url_slug):
    post = get_object_or_404(Post, url_slug = url_slug)
    return render(request, 'article.html', {'post':post})

Any help would be greatly appreciated, I just find the 404 I get without a trailing / to be very annoying



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source