Проблема Navbar с контекстом views при использовании slug или PK. (Django)

Slug будет работать только на HomeView, если я добавлю его в контекст HomeView, но я хочу добавить его только один раз, я не хочу добавлять его в каждый вид, но я хочу, чтобы он работал на каждом виде.

Есть ли способ сделать это?

<
from django.db import models
from django.contrib.auth.models import User
from django.urls import reverse


class Model1(models.Model):
    name = models.CharField(max_length=100)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    slug = models.SlugField(unique=True, blank=False, null=False)

app1/views.py

from app2.models import Model1
from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django.views.generic.list import ListView


class HomeView(ListView):
    model = Model1
    ordering = ['-id']
    template_name = 'app1/home.html'
    boolean = False
    model1_slug = 'app2'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
            if Model1.objects.filter(user=self.request.user).exists():
                self.boolean = True
                user_model1 = Model1.objects.get(user=self.request.user)
                self.model1_slug = user_model1.slug
                
            else:
                self.model1_slug = 'app2'
                self.boolean = False
            context['model1_slug'] = self.model1_slug
            context['boolean'] = self.boolean
        return context

includes/navbar.html

            {% if boolean == False %}
              <li><a class="dropdown-item" href="{% url 'start-model1' %}">Start Model1</a></li>
            {% elif boolean == True  %}
              <li><a class="dropdown-item" href="{% url 'my-model1' model1_slug %}">My Model1</a></li>
              <li><a class="dropdown-item" href="{% url 'add-model2' %}">Add model2</a></li>
            {% endif %}

       

Навбар ничего не дает, если я не нахожусь на главной странице.


TEMPLATE_CONTEXT_PROCESSORS Возможно, это будет работать, но вы можете добавить это только в одно приложение?

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