Передача данных из одной формы в другую в формах/представлениях Django
Я не слишком хорошо разбираюсь в Django, но я хотел бы реализовать одну идею, которая у меня есть, но не могу сообразить, как этого добиться. Итак, в моем веб-приложении есть форма с полем под названием "подрядчик", и у нее есть кнопка, при нажатии на которую открывается модальная форма с другой формой с различными полями о "подрядчике". Я хочу, чтобы при отправке информации о подрядчике во второй форме, она автозаполняла поле в первой форме данными из первого поля второй формы. Также я хочу сделать так, чтобы когда пользователь начинает вводить данные в поле "подрядчик" в первой форме, можно было выбрать уже введенные данные. Я оставляю здесь свой код, чтобы дать вам представление:
models.py
class Contratos(models.Model):
name=models.CharField(max_length=30)
contractor=models.ForeignKey(Vendors, on_delete=models.CASCADE, to_field='contractee_vendor')
contractee=models.CharField(max_length=30)
[......]
class Vendors(models.Model):
contractee_vendor=models.CharField(max_length=30, unique=True)
company=models.CharField(max_length=30)
description=models.TextField()
[......]
views.py
def ContractView(request):
form=contractsform(request.POST)
if form.is_valid():
con =form.save()
return redirect('contracts', con.id)
else:
form = contractsform()
return render(request, 'contform.html', {'form': form})
class VendorsModal(BSModalCreateView):
template_name = 'vendform.html'
form_class = vendorsform
success_message = 'Success: Vendor created'
success_url = reverse_lazy('new-contract')
из моих контрактов HTML для открытия модала
<form action="" method=POST>
{% csrf_token %}
<label for="{{ form.subject.id_for_label }}">Name:</label>
{{form.name}}
<label for="{{ form.subject.id_for_label }}">Contractor:</label>
<div class="input-group mb-3">
{{form.contractor}}
<button id="new-vendor" class="btn btn-outline-secondary" type="button">+</button>
</div>
Я не знаю, есть ли простой способ сделать это с помощью Django, или мне придется изучить JavaScript, но что-то подсказывает мне, что есть простой способ сделать это с помощью Django.