Сохранение имени пользователя после нажатия на ссылку для отображения
Я создаю систему тикетов, используя фреймворк django. Когда тикет заполнен и отправлен, группа поддержки заходит в приложение поддержки и видит информацию о номере тикета, имени клиента, резюме, дате создания и т.д. Номер тикета является ссылкой на детали этого тикета. Я хотел бы сделать так, чтобы каждый раз, когда пользователь нажимает на эту ссылку, билет автоматически присваивался этому пользователю. Это позволит пользователям не выбирать, какие билеты они хотят выполнять. Сейчас у меня так: кто бы ни обновил билет, чтобы изменить его статус, назначается именно этот человек. Я чувствую, что мои возможности в django ограничены, так что если у вас есть идеи по JS, пожалуйста, не стесняйтесь поделиться.
Подробное представление билета
@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)
Таким образом, первый пользователь, нажавший на ссылку, будет назначен на билет. Таким образом, пользователь нажимает на ссылку, в детальном просмотре он назначается на этот билет и после этого возвращается на страницу детализации билета