淘汰表中的Django链接
我读过这篇文章:和其他几个人一起 但是,我遗漏了一些东西,或者没有采取正确的方法。我已经为我的问题包含了相关的代码块。我试图使用knockout生成的表来更新任务或删除任务。拆卸部件工作正常。我正在尝试将更新链接到用于更新任务的另一个页面。我不知道我需要做什么才能使更新列中的链接正常工作 对于如何将url放入传递给KO模型的字典列表中,我尝试了几种不同的方法。有什么建议可以引导我朝正确的方向走吗?如果我遗漏了任何信息,请告诉我。多谢各位 Views.py淘汰表中的Django链接,django,knockout.js,Django,Knockout.js,我读过这篇文章:和其他几个人一起 但是,我遗漏了一些东西,或者没有采取正确的方法。我已经为我的问题包含了相关的代码块。我试图使用knockout生成的表来更新任务或删除任务。拆卸部件工作正常。我正在尝试将更新链接到用于更新任务的另一个页面。我不知道我需要做什么才能使更新列中的链接正常工作 对于如何将url放入传递给KO模型的字典列表中,我尝试了几种不同的方法。有什么建议可以引导我朝正确的方向走吗?如果我遗漏了任何信息,请告诉我。多谢各位 Views.py def TaskList(request
def TaskList(request, job_id):
job_tasks = Tasks.objects.filter(parent=job_id)
tasks_list = []
for task in job_tasks:
task_row = {}
task_row['task_id'] = task.task_id
task_row['t_name'] = task.name
task_row['date'] = task.date_created
task_row['state'] = task.state
task_row['url'] = '{% url tracking:update_task task_id=task.task_id %}'
tasks_list.append(task_row)
json_tasks = json.dumps(tasks_list)
if request.POST:
json_data = request.POST.get('json_blob')
obj = loads(json_data)
task.task_id = obj.get("task_id")
remove_task = Tasks.objects.get(task_id=task.task_id)
remove_task.delete()
messages.success(request, 'Task removed')
HTML
名称
日期
陈述
更新
去除
更新
去除
{%block javascript\u variables\u nocompress%}
window.TASKS={{json_TASKS | safe}};
{%endblock%}
{%block javascript_compress%}
$(函数(){
var RemoveTaskModel=函数(){
var self=这个;
self.tasks=ko.observearray(window.tasks);
self.remove_task=函数(任务){
self.tasks.remove(任务);
$(“#json_blob”).val(ko.toJSON(task));
}
}
ko.applyBinding(新RemoveTaskModel());
});
{%endblock%}
HTML我将使用
反向
对每个任务的URL进行反向查找:
from django.core.urlresolvers import reverse
def TaskList(request, job_id):
job_tasks = Tasks.objects.filter(parent=job_id)
tasks_list = []
for task in job_tasks:
...
task_row['url'] = reverse('update_task', args=(),
kwargs={'task_id': task_id})
然后您的ObservalArray应该能够将属性从JSON绑定到锚标记。您可能还注意到,在代码示例中,td的格式不正确:
<td a class="btn" data-bind="attr: {href: url}">Update</a></td>
更新
应该是:
<td><a class="btn" data-bind="attr: {href: url}">Update</a></td>
<td><a class="btn" data-bind="attr: {href: url}">Update</a></td>