Я пытаюсь создать форму для библиотеки, где пользователь может выполнить 2 действия: добавить новую книгу или открыть сохраненную информацию о существующем. У книг есть 2 поля (название и автор). Каждый раз, когда создается новая книга, она сохраняется в базе данных. Любая ранее созданная книга отображается как опция в раскрывающемся списке (только имя). Я хочу, чтобы, когда пользователь выбирает параметр из раскрывающегося списка, на экране появляется информация о выбранной книге.
Я пытался использовать два разных подхода, но ни один из них не соответствует моим требованиям. С одной стороны, после этого вопроса раскрывающийся список номеров django form Я могу создать раскрывающийся список и получить выбранное значение в представлениях с некоторым кодом:
class CronForm(forms.Form):
days = forms.ChoiceField(choices=[(x, x) for x in range(1, 32)])
def manage_books(request):
d = CronForm()
if request.method == 'POST':
day = request.POST.get('days')
Но я хочу, чтобы мои параметры были ранее сохраненными книгами в базе данных, а не предварительно определенными значениями.
Другой подход, который я попытался сделать, - это сделать из html-шаблона. Там я создаю следующую форму:
<form>
{% for book in list %}
<option value="name">{{ book.name }}</option>
{% endfor %}
</form>
Если книга отображается в виде:
l = Books.objects.all().order_by('name')
В этом втором случае информация, отображаемая в раскрывающемся списке, является той, которую я хочу, но я не знаю, как получить выбранное значение и использовать его в представлениях. Возможно, используя функцию javascript?
Итак, мои 2 требования: показать правильную информацию в списке (сохраненную в БД пользователем) и узнать, какой из них выбран.