У меня есть две формы: одна, которая берет информацию о пользователе (имя, дата рождения и т. Д.): FormA. И еще один, который содержит текстовое поле, пользователь может вводить текст в: formB.Django сохраняет 2 формы на одной странице, автоматически заполняет внешний ключ
модель formB имеет фактическое текстовое поле и «имя», которое связывает его с пользователем, которому принадлежит этот текст. Это поле называется text_name. text_name - это внешний ключ, связанный с моделью Name (связанный с formA).
В шаблоне моего взгляда я разрешаю пользователю видеть текстовое поле, в которое они могут вводить информацию из формыB, и они также могут видеть все поля в formA. Это означает, что раскрывающийся список text_name не отображается.
formA в настоящее время предварительно заполняется данными с другого сеанса.
Это мое мнение:
def name(request):
ses = request.session.get('ses', None)
formA = Name_Form(request.POST, instance = ses)
formB = Text_Form(request.POST or None)
formB.text_name = ses
if request.method == 'POST':
formB.text_name = ses
if formA.is_valid() and formB.is_valid():
formB.note_job = ses
a = formA.save()
a.save()
b = formB.save()
b.save()
FormB не действует, потому что TEXT_NAME не заселяется. Я попытался заполнить эту строку:
formB.text_name = ses
но это не сработало.
Как автоматически заполнить текстовое имя с информацией, введенной уже без фактического отображения текстового имени в моем шаблоне и, следовательно, заставить пользователя фактически выбрать соответствующее текстовое имя вручную.
Я бы поставил это внутри инструкции is_valid if или раньше? – JohnnyCash
никогда не думал, что я понял! и это работает! благодаря тонну :) – JohnnyCash