У меня есть эта функция,
def event (request):
all_events = Quiz.objects.filter(owner_id=request.user.pk, status="Assigned")
get_event_types = Quiz.objects.filter(owner_id=request.user.pk, status="Assigned")
context = {"events": all_events, "get_event_types": get_event_types, }
print("context is", context)
return render(request, 'classroom/teachers/calendar.html', context)
и он работает нормально, если я передам шаблон как calendar.html. Предполагается нарисовать календарь, а также передать контекст, называемый событиями, который затем обрабатывается функцией JavaScript для заполнения дней некоторыми значениями данных.
Это мой правильный рабочий calendar.html:
{% extends 'base.html' %}
{% load fullcalendar_tags %}
{% block content %}
{% for i in events %}
{{ i }}
{% endfor %}
{% calendar %}
<script>
$(document).ready(function () {
var currentView = '',
d = new Date(),
today = d.getDay(),
dow = 1;
$('#calendar').fullCalendar({
header: {
left: 'prev,next',
center: 'title',
right: 'month,agendaWeek'
},
defaultDate: d,
events: [
{% for i in events %}
{
title: "{{ i.weight}} Kg",
start: '{{ i.scheduled_date|date:"Y-m-d" }}',
end: '{{ i.scheduled_date|date:"Y-m-d" }}',
},
{% endfor %}],
navLinks: true,
firstDay: 1, //Monday
viewRender: function (view) {
if (view && view.name !== currentView) {
if (view.name === 'agendaWeek') {
dow = today;
} else {
dow = 1;
}
setTimeout(function () {
$("#calendar").fullCalendar('option', 'firstDay', dow);
}, 10);
}
if (view) {
currentView = view.name;
}
}
});
});
</script>
{% endblock %}
Это просто отлично отображает контекстное событие. Но когда я пытаюсь передать это в другое представление, часть {% calendar%} работает просто отлично, но контекст вообще не отправляется. Я напечатал его несколько раз, и по какой-то причине он ничего не передает в контексте «событий».
Я нашел способ вызова функции события из другого представления (не очень уверенный, если лучший метод доступен, но он казался простым для выполнения).
def json_example1 (request):
distinct_origin = Quiz.objects.filter(owner_id=request.user.pk).order_by().values_list('origin',
flat=True).distinct()
distinct_o_list = list(distinct_origin)
distinct_dest = Quiz.objects.filter(owner_id=request.user.pk).order_by().values_list('destination',
flat=True).distinct()
distinct_d_list = list(distinct_dest)
markers_list = list(set(distinct_o_list) | set(distinct_d_list))
# print("markers", markers_list)
gmaps = googlemaps.Client(key='AIzaSyArNLCXScd7tH0mwlDDPqXoVNgTT6emblI')
latitude = list()
longitude = list()
for i in markers_list:
geocode_result = gmaps.geocode(i)
lat = geocode_result[0]["geometry"]["location"]["lat"]
lon = geocode_result[0]["geometry"]["location"]["lng"]
longitude.append(lat)
latitude.append(lon)
# print("lat", latitude)
data = pd.DataFrame({'lat': latitude, 'lon': longitude, 'name': markers_list})
m = folium.Map(location=[21, 78], tiles="OpenStreetMap", zoom_start=4.75)
for i in range(0, len(data)):
folium.Marker([data.iloc[i]['lon'], data.iloc[i]['lat']], popup=data.iloc[i]['name']).add_to(m)
html_string = m._repr_html_()
context = {'map2': html_string}
# print("context is", context)
def load_calendar (request):
return event(request)
load_calendar(request) //Here I am loading the function
return render(request, 'classroom/teachers/graph_tot_trucks.html', context)
Любые подсказки ??