У меня есть форма в Django для предоставления информации о различных задачах в определенный день, и эти задачи сохраняются как объекты модели. Я отображаю задачи на HTML-странице, как показано ниже в виде сетки. (Нажмите здесь, чтобы просмотреть сетку) Но теперь я хочу, чтобы можно было показывать задачи только в тот день. Используя стрелки в верхнем правом углу, я хочу иметь возможность фильтровать задачи и отображать их.
Я уже извлек текущую дату из JavaScript календаря и отправил ее через вызов ajax в моих представлениях.py. Оттуда я фильтрую задачи в соответствии с датой, но когда я меняю представление (т.е. дату из стрелок в левом и правом углу), я могу зафиксировать обновленную дату, но не могу обновить теги шаблона наСторона JS.
views.py
# The default view when the page loads for the first time
# As it loads by default to the current date, so filtering tasks on the current date.
def schedule(request):
today = datetime.datetime.today()
tasks = Tasks.objects.filter(schedule_date=today.strftime("%Y-%m-%d"))
context = {
"tasks": processes,
}
return render(request, r'dhtmlx_grid_view.html',context)
.
.
.
.
#Calling this function when there is a view change (ie., when you navigate to a new date)
@csrf_exempt
def load_tasks(request):
if request.method == "POST":
view_date = request.POST.get('new_date')
date = datetime.datetime.strptime(view_date, '%b %d %Y')
tasks= Tasks.objects.filter(schedule_date= date.strftime("%Y-%m-%d"))
context = {
'tasks': task
}
return render(request, r'dhtmlx_grid_view.html',context)
dhtmlx_grid_view.html (в разделе JS HTML-файла)
{# Using ajax post call to send the changed date #}
scheduler.attachEvent("onViewChange", function (new_mode, new_date) {
$.ajax({
url: {% url 'tasks:load-tasks' %},
type: "POST",
data: {
'new_date': String(new_date).substring(4,15),
'new_mode': new_mode,
},
success: function (result) {
alert("Successful")
}
});
})
.
.
.
.
{# Using the template tags as follows to render the variable #}
var tasks = [
{% for i in tasks %}
{
key: "{{ i.grouper }}", label: "{{ i.grouper }}", open: true, children: [
{% for j in i.list %}
{key: {{ j.sub_process_id }}, label: "{{ j.sub_process }}"},
{% endfor %}
]
},
{% endfor %}
];
Как изменить значениеtasks
на стороне шаблона из метода load-tasks
?
Есть ли способ сделать это, так как, хотя я сохраняю измененную дату и фильтр, я не могу обновить значения <QuerySet>
ie., tasks
на стороне шаблона.
Дайте мне знать, если вам нужна дополнительная информация