2016-09-01 1 views
0

Я очень новичок в Django, и в настоящее время я пытаюсь создать простое приложение To-Do. В настоящее время я могу отображать список дел на веб-странице с помощью HTML-таблиц, но чтобы удалить его, я добавил новую строку в конце каждой записи с именем "Delete" с href element, on click event, отправив ее функции JS который выдает подтверждение пользователю, хочет ли он на самом деле его удалить. Я сохраняю ответ в переменной с именем response. Теперь, мой вопрос: как отправить этот ответ через django, чтобы действительно удалить запись? Это то, что я сделал до сих пор и не работал. Вся помощь будет оценена. Спасибо.Как отправить ответ на подтверждение JavaScript по Django скрипту для выполнения операций на основе ответа?

{% for item in task %} 
    <tr> 
    <td>{{ item.task_name }}</td> 
    <td>{{ item.task_priority }}</td> 
    <td>{{ item.task_status }}</td> 
    <td>{{ item.target_date }}</td> 
    <td><a href="" onclick="return delete_function()">Delete</a></td> 
     <p id="delete"></p> 
     </tr> 
    {% endfor %} 

    </table> 
<script> 
    function delete_function() { 
     var response = confirm("Are you sure you want to delete this item?"); 
     if (response == true){ 
      response.post() 
     } 
    } 
</script> 

На моей странице просмотров, у меня есть эта функция, чтобы справиться с этой постом метода:

def view_task(request): 
    if request.method == 'GET': 
     context = dict() 
     context['task'] = Task.objects.all() 
     return render(request, 'todo/view_tasks.html', context) 

    if request.method == 'POST': 
     task_name = request.post['task_name'] 
     Task.objects.delete(task_name) 
     Task.objects.save() 

Что я делаю неправильно? Кроме того, не могли бы вы также объяснить мне свой ответ, когда и где я должен использовать пост и получить или хотя бы направить меня на некоторые очень хорошо ответившие вопросы по одной и той же теме?

ответ

0

Я не думаю, что это будет хорошим способом решить эту проблему,

пытается это сделать:

в вашем template.html:

<form method="POST" action=""> 
    {% csrf_token %} 
    <input type="submit" name="delete_amount" onclick="delete_me(event)" /> 
</form> 

в вашей точке зрения .py:

#just in case you have other form 
if 'delete_amount' in request.POST: 
    # do your deleting query here 
    print('deleting amount') 

и в вашем javascript.js:

<script> 
function delete_me(e) 
{ 
    if(!confirm('Are you sure you want to delete this?')){ 
      //prevent sending the request when user clicked 'Cancel' 
      e.preventDefault(); 
    } 
} 

</script> 

Надеюсь, это поможет!

+0

Я забыл упомянуть, что вы можете поместить форму в столбец таблицы в каждой строке. –

+0

Это все еще не работает. – DeA

 Смежные вопросы

  • Нет связанных вопросов^_^