【发布时间】:2020-05-12 00:55:04
【问题描述】:
我正在尝试做一个从对象调用细节的函数。
网址:
path('todo/<int:todo_pk>/complete', views.completetodo, name='completetodo'),
path('todo/<int:todo_pk>', views.viewtodo, name="viewtodo"),
viewtodo 使用 GET 方法接收请求以构建表单并接收数据的一些更改。视图 completetodo,应该是一个按钮来填充具有完成数据的字段:
def viewtodo(request, todo_pk):
todo = get_object_or_404(Todo, pk=todo_pk, user=request.user)
if request.method == 'GET' :
form = TodoForm (instance=todo)
return render (request, 'TodoList/viewtodo.html', {'todo':Todo, 'form':form})
if request.method == 'POST' :
try:
form = TodoForm(request.POST, instance= todo)
form.save()
return redirect('currentTodo')
except ValueError:
return render(request, 'TodoList/viewTodo.html', {'todo':Todo, 'form':form, 'error':'Houve um erro com os dados que tentou salvar. Por favor, tente novamente.'})
def completetodo(request, todo_pk):
todo = get_object_or_404(Todo, pk=todo_pk, user=request.user)
if request.method == 'POST':
return render (request, 'TodoList/viewtodo.html')
HTML:
{% extends 'TodoList/base.html' %}
{% block content %}
{{ error }}
{{ todo.title }}
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit"> Alterar </button>
</form>
<form method="POST" action="{% url 'completetodo' todo.id %}">
{% csrf_token %}
<button type="submit">Concluir</button>
</form>
{% endblock %}
【问题讨论】: