Проблема с шаблоном в django TemplateView

У меня есть 4 типа билетов для отображения на моей приборной панели Открыт, принят, завершен и закрыт Я написал ниже шаблон представления для отображения всех контекстов в одном представлении, но если я нажимаю на эти опции на приборной панели, он отображает все статусы билетов во всех четырех, так как если я нажимаю на открытые билеты, он показывает все другие статусы вместе с открытыми билетами, и то же самое происходит для других типов билетов Изображение приборной панели

Это url открытого тикета, показывающий все статусы вместо только открытых тикетов

views.py

class DeveloperTicketView(TemplateView):
    template_name = 'app/ticket_view.html'
    

    def get_context_data(self, **kwargs):
        context =  super(DeveloperTicketView,self).get_context_data(**kwargs)
        context['open_tickets'] = Ticket.objects.filter(status = 'Opened')
        context['accepted_tickets'] = Ticket.objects.filter(status = 'Accepted',accepted_by = self.request.user)
        context['completed_tickets'] = Ticket.objects.filter(status = 'Completed',accepted_by = self.request.user)
        context['closed_tickets'] = Ticket.objects.filter(status = 'Closed',accepted_by = self.request.user)
        return context

Ticket_view.html

{% extends 'app/base.html' %}
{% block body %} 
<table  class="table table-bordered">
    <thead>
        <tr>
            <th>ID</th>
            <th>Status</th>
            <th>Created</th>
            <th>Title</th>
            <th>Description</th>
            </tr>
    </thead>
    <tbody> 
         {% for ticket in open_tickets %}
        <tr>
            <td><a href="">{{ ticket.id }}</a></td>
            <td>{{ ticket.status }}</td>
            <td>{{ ticket.created_by }}</td>
            <td>{{ ticket.ticket_title }}</td>
            <td>{{ ticket.ticket_description }}</td>
            <td><a href="{% url 'accept_tickets' pk=ticket.id %}">Accept</a></td>
        </tr>
        {% endfor %}
        {% for ticket in accepted_tickets %}
        <tr>
            <td><a href="">{{ ticket.id }}</a></td>
            <td>{{ ticket.status }}</td>
            <td>{{ ticket.created_by }}</td>
            <td>{{ ticket.ticket_title }}</td>
            <td>{{ ticket.ticket_description }}</td>
            <td><a href="{% url 'mark_complete' pk=ticket.id %}">Complete</a></td>
        </tr>
        {% endfor %}
        {% for ticket in completed_tickets %}ticket.status
        <tr>
            <td><a href="">{{ ticket.id }}</a></td>
            <td>{{ ticket.status }}</td>
            <td>{{ ticket.created_by }}</td>
            <td>{{ ticket.ticket_title }}</td>
            <td>{{ ticket.ticket_description }}</td>
        </tr>
        {% endfor %}
        {% for ticket in closed_tickets %}
        <tr>
            <td><a href="">{{ ticket.id }}</a></td>
            <td>{{ ticket.status }}</td>
            <td>{{ ticket.created_by }}</td>
            <td>{{ ticket.ticket_title }}</td>
            <td>{{ ticket.ticket_description }}</td>
        </tr>
        {% endfor %}
    </tbody>
</table>
{% endblock %}  

models.py

class Ticket(models.Model):
    ticket_title = models.CharField(max_length=200)
    ticket_description = models.TextField()
    created_by = models.ForeignKey(User,related_name = 'created_by',blank=True,null=True,on_delete=models.CASCADE)

    STATUS_CHOICES = (
        ('Opened','Opened'),
        ('Accepted','Accepted'),
        ('Completed','Completed'),
        ('Closed','Closed')
    )

    status = models.CharField('Status',choices=STATUS_CHOICES,max_length = 100,default = 'Opened')

    closed_date = models.DateTimeField(blank=True,null=True)
    completed_date = models.DateTimeField(blank=True,null=True)
    accepted_date = models.DateTimeField(blank=True,null=True)
    opened_date = models.DateTimeField(blank=True,null=True)
    

    accepted_by = models.ForeignKey(User,related_name='assigned_to',on_delete=models.CASCADE,blank=True,null=True)

    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)


    def __str__(self):
        return self.ticket_title

Вместо "Ticket" попробуйте использовать "self":

views.py

context['open_tickets'] = self.objects.filter(status = 'Opened')
context['accepted_tickets'] = self.objects.filter(status = 'Accepted',accepted_by = self.request.user)
context['completed_tickets'] = self.objects.filter(status = 'Completed',accepted_by = self.request.user)
context['closed_tickets'] = self.objects.filter(status = 'Closed',accepted_by = self.request.user)
Вернуться на верх