Поскольку у вас есть две формы, вам нужно что-то сказать, какая форма действительно была отправлена. Это сообщит вашей функции display_select_proj
, пытаться ли проверить форму.
Обычно при простой старой форме у вас есть кнопка «Отправить», а если у вас их две, value
для каждой кнопки отправки отличается, поэтому вы можете проверить ее, чтобы узнать, какая форма была отправлена. В противном случае вам нужно добавить скрытое поле, чтобы указать, какая форма была отправлена.
Как только вы сможете определить, какая форма была отправлена, вы можете использовать ее, чтобы выяснить, нужно ли вам связывать форму или оставить ее свободной. Например, в вашем коде, если у вашего селектора проекта есть кнопка «Отправить» с именем «action» со значением «Change Project»:
def display_select_proj(request):
if request.method == "POST" and (request.POST.get("action", "")
== "Change Project"):
form = SelectForm(request.POST)
if form.is_valid():
proj = form.save()
request.session['proj'] = proj
else:
form = SelectForm()
proj = ""
return {'select_form': form}
Обратите внимание, что каждой форме потребуется дополнительная проверка, чтобы убедиться, что эта конкретная форма была отправлена.