Django:从 HTML 中获取 LIST 数据,无需表单或模型
Posted
技术标签:
【中文标题】Django:从 HTML 中获取 LIST 数据,无需表单或模型【英文标题】:Django: Get LIST data from HTML without forms or models 【发布时间】:2018-09-02 15:22:43 【问题描述】:我有一个包含一系列列表项的 html 页面。我希望能够按下按钮,读取列表中的数据,并进行某种转换。我认为它更像是this example。
但是,这种格式使用名称属性来获取数据,列表或列表项都不能有名称!
我的 HTML:
<form action="% url 'index' %" method="POST">
% csrf_token %
<ul id="myList">
<li id="myId1">First Item</li>
<li id="myId2">Second Item</li>
</ul>
<button type="submit">Submit</button>
</form>
我的蟒蛇:
def index(request):
if request.method == 'POST':
var = request.POST['myList']
print(var)
return render(request, "test.html", )
有没有办法获取列表中的项目?
附加信息:
当前输出只是None
。
我可以很好地抓取文本框之类的数据,它们是命名项目。
我尝试了其他一些建议,例如var = request.POST.get('myList')
,甚至开始处理表单和
模型,但我只能以这种方式获取模型中的数据,而不是<li>
。
【问题讨论】:
可以打印request.POST的输出吗? 【参考方案1】:您的表单中必须有带有name
属性的input
标记,才能将任何数据提交到服务器。只是在其中粘贴一些列表项将无济于事 - HTML 表单需要输入。
这样的事情可能对你有用:
<form action="% url 'index' %" method="POST">
% csrf_token %
<ul id="myList">
<li id="myId1">First Item <input type="hidden" name="mylist[]" value="myid1"></li>
<li id="myId2">Second Item <input type="hidden" name="mylist[]" value="myid2"></li>
</ul>
<button type="submit">Submit</button>
</form>
即,在列表中的每个项目中插入一个隐藏的输入,带有 name
和 value
属性,这应该会导致 request.POST.getlist('mylist')
中的某些内容可用。
【讨论】:
这正如我所愿,感谢您的反馈!以上是关于Django:从 HTML 中获取 LIST 数据,无需表单或模型的主要内容,如果未能解决你的问题,请参考以下文章