Использование ForeignKey в Django

У меня есть эта "система" микро-билетов

\\\models.py

class Ticket(models.Model):
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        default=None,
        null=True,
        on_delete=models.CASCADE,
    )
    title = models.CharField(max_length=200)
    description = models.TextField()
    creator_adress = models.GenericIPAddressField(null=True)
    start_date = models.DateTimeField(default=timezone.now)
    ticket_waiting = models.BooleanField(default=True)
    ticket_solved = models.BooleanField(default=False)
    reopened_counter = models.IntegerField(default=0)
    ...

До сих пор пользователь может отправить только одно сообщение (когда он открывает тикет), которое будет переслано администратору. Но администратор и пользователь пока не могут писать никаких других сообщений туда и обратно под тикетом.

Если вы используете для этого новую модель, которая связана с каждым отдельным тикетом, как это делается?

class TicketMessages(models.Model):
    ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE)
    admin_message = models.TextField()
    user_message = models.TextField()

Каким образом лучше всего это реализовать?

Большое спасибо :>

вы можете эффективно достичь этого с помощью следующего метода,

создайте модель для сообщения о билете :-

class TicketMessages(models.Model):
    ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE)
    message = models.TextField() #this will be the message
    message_by = # you can use a foreign key or a choices option to select between the admin or user
    reply_to = models.ForeignKey("self") # if this is a reply to existing message

Это хорошее и эффективное решение, насколько я понимаю вашу проблему .... Если вам нужно что-то еще или что-то большее, дайте мне знать, я с удовольствием помогу вам.

Спасибо!

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