Как показать в шаблоне только модель с внешним ключом Django

У меня эта модель:

class CustomUser(AbstractUser):
phone = models.IntegerField(null=True, blank=True)


class RouterModel(models.Model):
 ip = models.CharField(max_length=15)
 username = models.CharField(max_length=50)
 password = models.CharField(max_length=50)
 port = models.IntegerField()
 owner = models.ForeignKey('CustomUser', on_delete=models.CASCADE, )
 name = models.CharField(max_length=50)

 def __str__(self):
  return self.name

class Clients(models.Model):
 name = models.CharField(max_length=50)
 tcpIP = models.IntegerField()
 email = models.EmailField()
 phone = models.IntegerField()
 zone = models.CharField(max_length=50)
 owner = models.ForeignKey('RouterModel', on_delete=models.CASCADE, ) 

def __str__(self):
    return  self.name


class Tickets(models.Model):
 title = models.CharField(max_length=200)
 comment = models.TextField(max_length=500)
 owner = models.ForeignKey('Clients', on_delete=models.CASCADE) 

 def __str__(self):
    return self.title

и этот вид

class DashBoard(ListView):
 model = RouterModel
 template_name = 'templates/dashboard/dashboard.html'
 context_object_name = 'router_model'

Шаблон:

{% block content %}

{% if user.is_authenticated %}
    <h3>Hello {{ user.username }}</h3>

{% for router in object_list %}
    <h3>{{ router }}</h3>
    <h2>{{ router.ip }}</h2>
    <br>
{% endfor %}


{% endif %}

{% endblock content%}

Я получаю в шаблоне все созданные RouterModel. То есть, если пользователь A создает RouterModel, когда я вхожу в систему с пользователем B, я вижу, что создал пользователь A. Как я могу отобразить только модели пользователей, созданные пользователем B? Не A или C. Только B.

Вы можете сделать это, написав этот код в своем шаблоне.

{% block content %}

{% if user.is_authenticated %}
    <h3>Hello {{ user.username }}</h3>

 {% for router in object_list %}
 {% if router.author == self.user %}
     <h3>{{ router }}</h3>
     <h2>{{ router.ip }}</h2>
    <br>
 {% endif %}
 {% endfor %}


 {% endif %}

{% endblock content%}

Вы также можете попробовать этот способ

class DashBoard(ListView):
   model = RouterModel
   template_name = 'templates/dashboard/dashboard.html'
   context_object_name = 'router_model'    
   queryset = Publisher.objects.filter(owner=self.request.user)
               or 
   queryset = Publisher.objects.filter(owner=request.user)
Вернуться на верх