拖放后更新Django数据库通过javascript删除

时间:2017-06-18 20:54:28

标签: javascript django

我想做一个看板表(项目管理),但我没有想法如何在删除任务后(例如从待办事项到正在进行中)保存数据库中的修改。 这就是我的模型看起来

class Task(models.Model):
    TODO = 1
    INPROGRESS = 2
    DONE = 3
    STATUS_TYPES = (
        (TODO, 'To do'),
        (INPROGRESS, 'In progress'),
        (DONE, 'Done'),
    )

    taskid = models.AutoField(primary_key=True,default = increment_booking_number)
    projectcode = models.ForeignKey('Project', models.DO_NOTHING, db_column='projectid')
    taskname = models.CharField(max_length=100)
    taskdescription = models.TextField(max_length=500, blank=True, null=True)
    task_status = models.PositiveSmallIntegerField(choices = STATUS_TYPES, blank=True, null=True)

这是我拖放的javascript: https://paste.fedoraproject.org/paste/pAcECud8nRItO5nJefYF0w

请帮忙吗?

This is how the table should look

1 个答案:

答案 0 :(得分:0)

我建议您使用AJAX来实现目标,原因是您可能不希望每次刷新页面。

当然,下面的代码是为了让您了解它应该如何工作,但您必须根据自己的JavaScript对其进行一些修改。

#You might have a different drop trigger, configure to your need.
$(document).on('drop', '.your_dropped_task', function(e){ 
    $.ajax({
        type:'POST',
        url:'/your_url/',
        data:{
            #You probably store your drop status on your dropped task.
            #You'll have to fetch it.
            task_status:$('this_dropped_task_new_val').val(),
            csrfmiddlewaretoken:$('#your_form input[name=csrfmiddlewaretoken]').val(),
        },
    });
});

这很粗糙,但这肯定会让你知道你必须做什么。