如何将html中的单击链接或ComboBox中的选定信息发送给Django?
views.py
def musicList(request):
musics = Song.objects.filter()
print(musics)
con = sqlite3.connect(str(request.user)+".db")
cursor = con.cursor()
cursor.execute("Select name From sqlite_master Where type='table';")
tables = list()
for i in cursor.fetchall():
tables.append(i[0])
context = {
"musics":musics,
"tables":tables,
}
return render(request,"musicList.html",context)
musicList.html
{% for music in musics %}
<tr>
<th scope="row">{{music.id}}</th>
<td>{{music.artist}}</td>
<td>{{music.song_name}}</td>
<td>{{music.song_type}}</td>
<td>{{music.owner}}</td>
<td>
<div class="dropdown">
<button type="button" class="btn btn-primary btn-sm dropdown-toggle" data-toggle="dropdown">
Choice a Music List
</button>
<div class="dropdown-menu">
{% for table in tables %}
<a class="dropdown-item" href="add_to_list/{{music.id}}" value="{{table}}">{{table}}</a>
{% endfor %}
</div>
</div>
</td>
</tr>
{% endfor %}
如何将与用户从“下拉菜单”单击的链接的“值”相对应的值返回到views.py中的其他函数
答案 0 :(得分:0)
有几种方法可以从模板到视图进行通信。
1。发布方法:
使用输入,复选框等及其值制作表单,然后在视图中检索值:
request.POST.get('value')
2。通过网址:
urls.py
urlpatterns = [
...
path('add_to_list/<int:music_id>/<str:value>', views.musicList, name='musicList'),
...
]
views.py
def detail(request, music_id, value):
...
官方文档here中有更高级的说明。
您也可以使用
查询参数:
localhost:8000 /?id = 123
request.GET.get('id')