Сохранение имени пользователя после нажатия на ссылку для отображения

Я создаю систему тикетов, используя фреймворк django. Когда тикет заполнен и отправлен, группа поддержки заходит в приложение поддержки и видит информацию о номере тикета, имени клиента, резюме, дате создания и т.д. Номер тикета является ссылкой на детали этого тикета. Я хотел бы сделать так, чтобы каждый раз, когда пользователь нажимает на эту ссылку, билет автоматически присваивался этому пользователю. Это позволит пользователям не выбирать, какие билеты они хотят выполнять. Сейчас у меня так: кто бы ни обновил билет, чтобы изменить его статус, назначается именно этот человек. Я чувствую, что мои возможности в django ограничены, так что если у вас есть идеи по JS, пожалуйста, не стесняйтесь поделиться.enter image description here

Подробное представление билета

@group_required('Support')
def ticket_detail(request, pk):
    object = get_object_or_404(Ticket, id=pk)

    context = {
        'object': object,
    }
    return render(request, 'support/ticket_detail.html', context)

Модель

class TicketStatus(models.Model):
    name = models.CharField(max_length=25)

    def __str__(self):
        return self.name


class Ticket(models.Model):
    name = models.CharField(max_length=20)
    email = models.EmailField()
    phone_num = models.CharField(max_length=11)
    property = models.CharField(max_length=30, blank=True)
    location = models.CharField(max_length=50, blank=True)
    summary = models.CharField(max_length=50)
    details = models.TextField()
    status = models.ForeignKey(TicketStatus, null=True, blank=True, default=1, on_delete=models.CASCADE)
    image = models.ImageField(upload_to = 'support/images', blank=True, null=True)
    notes = models.TextField(blank=True, null=True)
    date_created = models.DateTimeField('date created', auto_now_add=True)
    date_updated = models.DateTimeField('date updated', auto_now_add=True)
    updated_by = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, related_name='up_ticket')

Предполагая, что вы ссылаетесь на поле updated_by модели Ticket, вам нужно добавить это в функцию представления:

@group_required('Support')
def ticket_detail(request, pk):
   object = get_object_or_404(Ticket, id=pk)

   if not object.updated_by:
      object.updated_by = request.user
      object.save()

   context = {
    'object': object,
   }
   return render(request, 'support/ticket_detail.html', context)

Таким образом, первый пользователь, нажавший на ссылку, будет назначен на билет. Таким образом, пользователь нажимает на ссылку, в детальном просмотре он назначается на этот билет и после этого возвращается на страницу детализации билета

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