Django обновление данных через ajax

html

<div class="col-8 mt-5" xmlns="http://www.w3.org/1999/html">
  <form class="form-inline justify-content-center" id="createTaskForm" method="post" data-url="{% url 'task_list_url' %}">
    {% csrf_token %}
    {% for field in form %}
    <div class="mx-3">
      {{field}}
    </div>
    {% endfor %}
    <button type="button" class="btn btn-outline-success"   id="createButton">Create</button>
  </form>
</div>

      <table class="table" id="taskList">
<thead>
  <tr>
        <th>ФИО ответственного</th>
            <th>Объект</th>
            <th>Вид работ</th>
            <th>Объем работ план</th>
            <th>Объем работ факт</th>
            <th>Служба</th>
            <th>Дата</th>
            <th>ФИО исполнителя</th>
            <th>Статус</th>
            <th>Примечание</th>
            <th>Подтверждение</th>
        <th></th>
        </tr>
  </thead>

 {% for task in tasks %}
    <tbody><tr id="taskCard" data-id="{{ task.id }}">
        <td>{{task.title}}</td>
        <td>{{task.anons}}</td>
        <td>{{task.full_text}}</td>
        <td>{{task.plan}}</td>
        <td>{{task.fact}}</td>
        <td>{{task.slujba}}</td>
        <td>{{task.data}}</td>
        <td>{{task.ispolnitel}}</td>
        <td>{{task.status}}</td>
        <td>{{task.prim}}</td>
        <td>{{task.podt}}</td>
        <td><button type="button" class="update" data-id="{{ task.id }}" >Update</button></td></tr></tbody>
        <td><button type="button" class="close" data-id="{{ task.id }}" >Close</button>   </td></tr></tbody>
 {% endfor %}
    </table>  </div>

views.py

Для создания

class TaskList(View):
   def get(self,request):
       form = PlanForm()
       tasks = Plan.objects.all()
       return render(request, 'task/task_list.html', context={'form':form, 'tasks':tasks})

def post(self, request):
    form = PlanForm(request.POST)
    if form.is_valid():
        new_task = form.save()
        return JsonResponse({'task': model_to_dict(new_task)}, status=200)
    else:
        return redirect('task_list_url')

js

$(document).ready(function(){

var csrfToken = $("input[name=csrfmiddlewaretoken]").val();
$("#createButton").click(function(){
var serializedData = $("#createTaskForm").serialize();

$.ajax({
  url: $("createTaskForm").data('url'),
  data: serializedData,
  type: 'post',
  success: function(response) {

    $("#taskList").append('<tbody><tr id="taskCard" data-id="'+ response.task.id +'"><td>'+ response.task.title +'</td><td>'+ response.task.anons +'</td><td>'+ response.task.full_text +'</td><td>'+ response.task.plan +'</td><td>'+ response.task.fact +'</td><td>'+ response.task.slujba +'</td><td>'+ response.task.data +'</td><td>'+ response.task.ispolnitel +'</td><td>'+ response.task.status +'</td><td>'+ response.task.prim +'</td><td>'+ response.task.podt +'</td><td><button type="button" class="update" data-id="'+ response.task.id +'" >Update</button></td></tr></tbody><td><button type="button" class="close" data-id="'+ response.task.id +'">Close</button></td></tr></tbody>');
  }
})
$("#createTaskForm")[0].reset();

});

все работает как надо, не могу сообразить как занести в форму для обновления данных

views.py

class TaskComplete(View):
# def get(self, request, id):
#     task = Plan.objects.get(id=id)
#     form = PlanForm(request.POST, instance=task)
#     return JsonResponse({'task': model_to_dict(form)}, status=200)
def post(self, request, id):
    task = Plan.objects.get(id=id)
    # task.complete=True
    print(task)
    # task.save()
    return JsonResponse({'data':{'title':task.title}})

js

$("#taskList").on('click', 'button.update', function(){
var dataId = $(this).data('id');
//    $form_data = $("#createTaskForm").serialize();
$.ajax({
  url: '/tasks/'+ dataId + '/completed/',
  data: {
    csrfmiddlewaretoken: csrfToken,
    id: dataId
  },
  type: 'post',
  dataType: 'json',
  success: function(response){
       $("#createTaskForm")[0].value=response['data']['title'];

  }
});
Вернуться на верх