Django:从没有表单或模型的 HTML 中获取 LIST 数据

Cla*_*rds 1 html python django post list

我有一个包含一系列列表项的 HTML 页面。我希望能够按下一个按钮,读取列表中的数据,并进行某种转换。我认为它会更像这个例子

但是,这种格式使用 name 属性来获取数据,并且列表或列表项都不能有名称!

我的 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>
Run Code Online (Sandbox Code Playgroud)

我的蟒蛇:

def index(request):
if request.method == 'POST':
    var = request.POST['myList']
    print(var)
return render(request, "test.html", {})
Run Code Online (Sandbox Code Playgroud)

有没有办法获取列表中的项目?

附加信息:

  • 当前输出仅为None.
  • 我可以很好地抓取文本框之类的数据,那些是命名项。
  • 我尝试了其他一些建议,例如var = request.POST.get('myList'),甚至开始处理表单和模型,但我只能以这种方式获取模型中的数据,而不是<li>.

sol*_*oke 5

您必须在input表单中包含带有name属性的标签,以便将任何数据提交到服务器。仅在其中粘贴一些列表项将无济于事 - 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>
Run Code Online (Sandbox Code Playgroud)

即,在列表中的每个项目中插入一个隐藏的输入,带有namevalue属性,然后应该会导致某些内容在request.POST.getlist('mylist').