【发布时间】:2019-01-22 13:55:20
【问题描述】:
我目前在views.py 中生成了一个列表,该列表由模板在所需页面上的项目符号显示:
views.py:
bullet_list = ['Apple starts with A','Banana starts with B','Carrot starts with C']
context = {'bullet_list': bullet_list}
return render(request, 'example.html', context)
example.html:
{% if bullet_list %}
<ul style="width: 800px;">
{% for bullet in bullet_list %}
<li style="list-style-type: circle;">{{bullet}}</li>
{% endfor %}
</ul>
{% endif %}
我想要它,以便用户可以添加/删除/调整项目符号并保存调整后的项目符号。理想情况下,当他们返回页面时,他们的新更改就在那里。
我能够让它删除一个项目符号(如下所示),但我不确定如何让它保存它已被删除以及如何将输入输入为另一个项目符号:
example.html:
<li onclick="this.parentNode.removeChild(this); onmouseover="this.setAttribute('style', 'text-decoration: line-through')" onmouseout="this.setAttribute('style', 'text-decoration: none;')" class="bullet">{{bullet}}</li>
我知道必须有一个输入文本字段才能添加一个新字段和一个保存按钮,但除此之外,我不知道如何实现这一点,也找不到太多关于它的信息。我会为此使用模型吗? JS?只是模板中的views.py/html和css?
【问题讨论】:
-
作为 Django 和 SO 的新手,评论一下为什么这可能是一个坏问题而不是投反对票会很有帮助。
-
如果您在一些
<li>标记中使用表单input框,并使用上次保存的占位符填充框怎么办? -
虽然我没有投反对票,但我的猜测是有人投了反对票,因为它至少没有开始尝试自己编写代码。我同意投反对票的人应该让 cmets 保持不变。
-
在这种情况下,可以在每个列表元素旁边放置一个带有“x”的小按钮,单击该按钮时,列表项将被删除。这部分最好使用 javascript。
-
好的,所以你需要创建一个可以 push() 和 pop() 的数组,当用户满意时,将该数组作为 POST 对象提交给视图收集,那么该视图可以更新
bullet_list。但是,如果您在视图中像这样对bullet_list进行硬编码,而不是使用模型和方法来删除数据库中的对象条目,您将始终在页面刷新时获得相同的bullet_list。
标签: javascript python html django django-views