Вы можете сделать это, отправив форму при каждом изменении пользовательского поля, или вы можете использовать Ajax, чтобы сделать это асинхронно. Оба требуют немного кода JavaScript. Первый вариант требует использования формы модели. Шаги довольно стандартные.
- Отправка данных пользователя
- Поиск пользователя в вашей базе данных
- Загрузка пользовательского экземпляра в форму модели
- Передача формы в контекст переменная
Для Ajax найдите учебники по Ajax и посмотрите этот ответ по SO.
В вашем HTML:
<select name="user_selector" id="userDropDown" class=" whatever-custom-css-class" autofocus onChange="this.form.submit();">
Затем, внутри своего запроса, вы можете
user_name = self.request.GET.get('user_selector', None)
if user_name:
try:
selected_user = User.objects.get(username = user_name)
except ObjectDoesNotExist:
# No such user.
selected_user = None
if selected_user:
contact_form = ContactForm(instance = selected_user)
...
context.update({'form': contact_form})
return render(request, self.template_name, context)