我正在尝试为库创建一个表单,用户可以在其中执行2个操作:添加新书或打开现有存储的信息.书籍有2个字段(标题和作者).每次创建新书时,它都存储在数据库中.任何以前创建的书籍都会在下拉列表中显示为一个选项(仅限名称).我希望当用户从下拉列表中选择一个选项时,所选书籍的信息将显示在屏幕上.
我一直在尝试两种不同的方法,但它们都没有满足我的要求.一方面,在这个问题django表格下拉列表中我可以创建一个下拉列表,并在视图中获取所选值,其代码如下:
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')
Run Code Online (Sandbox Code Playgroud)
但我希望我的选择是以前在数据库中存储的书籍,而不是预定义的值.
我尝试过的另一种方法是从html模板中完成.在那里,我创建以下形式:
<form>
{% for book in list %}
<option value="name">{{ book.name }}</option>
{% endfor %}
</form>
Run Code Online (Sandbox Code Playgroud)
从这里看到的书在哪里呈现:
l = Books.objects.all().order_by('name')
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,下拉列表中显示的信息是我想要的信息,但我不知道如何获取所选值并在视图中使用它.也许使用javascript函数?
所以我的2个要求是:在列表中显示正确的信息(由用户存储在DB中)并且能够知道哪个被选中.