Моя проблема заключается в том, что при нажатии на кнопку "Изменить" ничего не происходит. А я хочу, чтобы у меня появлялся доступ к полю с задачей, я мог его изменить, сохранить, и в случае случайного захода нажать кнопку "Отмена". Написал код и по логике он должен работать, но почему-то это не так.
views.py:
from django.shortcuts import render,redirect
from .models import Today
from django.views.decorators.http import require_http_methods
def index(request):
todos = Today.objects.all()
return render(request, 'today.html', {'todos':todos})
@require_http_methods(['POST'])
def add(request):
tasks = request.POST["tasks"]
task = Today(tasks=tasks)
task.save()
return redirect('todoist:index')
def delete(request, today_id):
todo = Today.objects.get(id=today_id)
todo.delete()
return redirect('todoist:index')
def update(request, today_id):
todo = Today.objects.get(id=today_id)
todo.tasks = request.POST.get('tasks')
todo.save()
return redirect('todoist:index')
def edit(request, today_id):
todo = Today.objects.get(id=today_id)
todo.edit_mode = True
todo.save()
return redirect('todoist:index')
urls.py:
from django.urls import path
from . import views
app_name = 'todoist'
urlpatterns = [
path('', views.index, name='index'),
path('add', views.add, name='add'),
path('delete/<int:today_id>/', views.delete, name='delete'),
path('update/<int:today_id>/', views.update, name='update'),
path('edit/<int:today_id>/', views.edit, name='edit'),
]
today.html:
<title>Todoist</title>
<h1>Сегодня</h1>
<h2>Задачи</h2>
<form method="POST" action="{% url 'todoist:add' %}" >{% csrf_token %}
<input type="text" name='tasks' pattern=".{2,}" required title='Минимум два символа!!!'>
<button type="submit" class="save btn btn-default">Добавить задачу</button>
</form>
<ol>
{% for todo in todos %}
<div>
{% if todo.edit_mode %}
<form action="{% url 'todoist:update' today_id=todo.id %}" method="POST"> {% csrf_token %}
<input type="text" name="tasks" value="{{ todo.tasks }}">
<button type="submit" class="save btn btn-default">Сохранить</button>
</form>
<a href="{% url 'todoist:index' %}">Отмена</a>
{% else %}
<li><p>{{ todo.tasks }}</p></li>
<a href="{% url 'todoist:delete' today_id=todo.id %}">Удалить</a>
<a href="{% url 'todoist:edit' today_id=todo.id %}">Изменить</a>
{% endif %}
</div>
{% endfor %}
</ol>