One class model for two ListView

Can a single class model be used for two views of the type ListView?

I've a class model in which is present an attribute "categories", this attribute is a ForeignKey. I've created two views, one for "categories_id=1" and another for "categories_id=2". I've created also two different urls for they and two different templates.

models.py

class Category(models.Model):
    post_category = models.CharField(max_length=20, verbose_name="Categoria", help_text="Every argument must be not longer then 20 characters", unique=True)
    created = models.DateTimeField(auto_now=False, auto_now_add=True, verbose_name="Data di creazione")

    def __str__(self):
        return self.post_category

    class Meta: 
        verbose_name = "Categoria"
        verbose_name_plural = "Categorie"       

class Post(models.Model):
    title = models.CharField(max_length=70, help_text="Write post title here. The title must be have max 70 characters", verbose_name="Titolo", unique=True)
    slug = models.SlugField(verbose_name="Slug", unique="True", help_text="Slug is a field in autocomplete mode, but if you want you can modify its contents")
    tagline = models.TextField(max_length=200, help_text="Write a post short description here. The description must be have max 200 characters", verbose_name="Breve descrizione dell'articolo")
    contents = models.TextField(help_text="Write your post here", verbose_name="Contenuti")
    publishing_date = models.DateTimeField(verbose_name="Data di pubblicazione")
    updating_date = models.DateTimeField(auto_now=True, verbose_name="Data di aggiornamento")
    categories = models.ForeignKey(Category, on_delete=models.CASCADE, related_name="category_set", verbose_name="Categoria")
    highlighted = models.BooleanField(default=False, help_text="If you want that the post went be highlighted, click on this area", verbose_name="Articolo in evidenza")

    def __str__(self):
        return self.title

    def get_absolute_url(self): 
        return reverse("gis_singlepost", kwargs={"slug": self.slug})

    class Meta: 
        verbose_name = "Articolo"
        verbose_name_plural = "Articoli" 

views.py

class SuMoSinglePost(DetailView):
    model = Post
    template_name = "sustainablemobility_singlepost.html"

class SuMoListPosts(ListView):
    model = Post
    template_name = "sustainablemobility_listposts.html"

    def get_queryset(self):
        return Post.objects.filter(categories_id=2).order_by('-publishing_date') 

class GisSinglePost(DetailView):
    model = Post
    template_name = "gis_singlepost.html"

class GisListPosts(ListView):
    model = Post
    template_name = "gis_listposts.html"

    def get_queryset(self):
        return Post.objects.filter(categories_id=1).order_by('-publishing_date') 

urls.py

urlpatterns = [
    path("gis/", GisListPosts.as_view(), name="gis_listposts"),
    path("gis/<slug:slug>/", GisSinglePost.as_view(), name="gis_singlepost"), 
    path("su-mo/", SuMoListPosts.as_view(), name="sumo_listposts"),
    path("su-mo/<slug:slug>/", SuMoSinglePost.as_view(), name="sumo_singlepost"), 
]

When I go into cat1's url I see the list of post of this category and the similar thing happen when I go into cat2. But if I click on a post of cat2 I see cat1/post-title instead of cat2/post-title. Moreover if I write on the browser cat2/post-title the post is viewed in the correct url.

I think that the problem is here:

return reverse("gis_singlepost", kwargs={"slug": self.slug})

but how I resolve it? I'm studying Django...