我当前的视图执行删除和创建功能。
您可以使用复选框删除项目。
无论如何要做一个可编辑的表吗? 我的意思是可能改变一种在模板上显示数据库的方法,并添加一个保存按钮?
这是一个截图
http://postimg.org/image/uromygv7f/
这里是views.py
def task1(request):
if request.POST and 'create' in request.POST:
form = AuthorForm(request.POST)
if form.is_valid():
form.save()
args = {}
args.update(csrf(request))
args['form'] = form
args['authors'] = Author.objects.all()
return render_to_response('tasks/task1.html',args)
elif request.POST and 'delete' in request.POST:
"""form= AuthorForm()
if form.is_valid():
form.save()
args = {}
args.update(csrf(request))
args['form'] = form
args['authors'] = Author.objects.all()"""
Author.objects.filter(id__in=request.POST.getlist('item')).delete()
return render_to_response('tasks/task1.html')
else:
form = AuthorForm()
args = {}
args.update(csrf(request))
args['form'] = form
args['authors'] = Author.objects.all()
return render_to_response('tasks/task1.html',args)
和模板
<form action="/task1/" method="post">{% csrf_token %}
<ul>
{{ form.as_table}}
</ul>
<input type="submit" value="Create" name="create"/>
{% if authors.count > 0 %}
{% for author in authors %}
<ul>
{{author.id}} {{author.name}} {{author.body}} {{author.deletes }} <input type="checkbox" name="item" value="{{author.pk}}">
</ul>
{% endfor %}
{% endif %}
<input type="submit" value="Delete" name="delete"/>
</form>
答案 0 :(得分:0)
来自Django documentation: Models:
会自动添加id字段,但可以覆盖此行为。请参阅Automatic primary key fields。
这是一个自动增量字段,允许在将新记录插入表格时生成唯一编号。更新或删除后,此数字不会自动更改。有关更多信息,请参阅示例MySQL reference(实现因不同的数据库而异,但您可以了解一下)。
由于id字段不会自动更改,因此不应影响排序。您仍然可以在id上对表进行排序。如果您希望模板中显示自动增量(1,2,3,...)字段,则可以使用{{ forloop.counter }}
。