Две формы, одно представление, одно отношение ONE-TO-MANY, как получить id, FK - DJANGO
Прежде всего, просто отказ от ответственности, я пишу только потому, что ни одна из тем здесь в стеке не помогла мне, даже связанные предложения, когда я назвал эту тему...
Я новичок в django, я работаю над открытием тикета поддержки, я борюсь с этой проблемой уже два дня....
Возможно ли присвоить значение полю, определенному в model.py, с помощью view.py? Моя проблема заключается в том, что у меня есть два класса моделей, две формы с отношениями один-ко-многим, которые отображаются на одной странице и должны сохраняться только при нажатии на кнопку
Мои модели:
class Ticket(models.Model):
objects = None
user_id = models.ForeignKey(User, null=False, blank=False, on_delete=models.DO_NOTHING)
created_at = models.DateTimeField('Created at', auto_now_add=True)
class MessageTicket(models.Model):
objects = None
ticket_id = models.ForeignKey(Ticket, null=False, blank=True, on_delete=models.DO_NOTHING)
status = models.CharField(default=TicketStatus.TO_DO)
content = models.TextField(null=True, default='')
Дело в том, что 'ticket_id' в классе 'MessageTicket' должен получать 'id' последнего сохраненного 'Ticket', но поскольку оба сохраняются одновременно, я не могу извлечь последний 'id' 'ticket'.
Мое представление, сохраненное в базе данных:
Как я уже сказал выше, я просмотрел несколько форумов и попробовал некоторые вещи (во втором 'IF'), я не оставил их здесь, чтобы сохранить код минимально чистым
formTicket = TicketForm(request.POST)
if formTicket.is_valid():
formTicket.save()
help = Ticket.objects.latest('pk').pk
print(help) #'debug' so I can see if it's getting the value of the last pk
formMessage = MesTicketForm(request.POST)
if formMessage.is_valid():
#What do I need to put here so that the 'ticket_id' of the 'messageTicket'
#receives the 'id' of the 'ticket', everything I tried returns me the error
#that 'ticket_id' cannot be null
formMessage.save()
return redirect('/')
else:
ticket = Ticket.objects.all()
mesticket = MessageTicket.objects.all()
context = {
'ticket': ticket,
'message': mesticket,
'formTicket': formTicket,
'formMessage': formMessage,
}
return render(request, 'support/register.html', context)
Как две формы отображаются на html-странице:
{% extends 'support/base.html' %}
{% block title %} Tickets {% endblock %}
{% block content %}
<form method="POST" action="cad">
{% csrf_token %}
{{ formTicket.as_p }}
{{ formMessage.as_p }}
<button type="submit">SAVE</button>
</form>
{% endblock %}