没有从 Django 中的 fullcalendar 发布后端数据

问题描述 投票:0回答:0

我正在尝试将 fullcalendar 包与 Django 一起使用来实现日历。我能够显示日历、创建模型并将其保存到数据库,但在将其导入模板时遇到问题。我可以引入上下文事件信息,至于将其带入实际日历,我错过了目标并且碰壁了。我的信念是我如何调用 URL 来带回 JSON 响应数据。感谢所有帮助

模型.py

class CalendarEvents(models.Model):
    id = models.AutoField(primary_key=True)
    type = models.CharField(max_length=50, choices=EVENT_CHOICES)
    name = models.CharField(max_length=145,null=True, blank=True)
    location = models.CharField(max_length=100, null=True, blank=True)
    start = models.DateTimeField(null=True, blank=True)
    end = models.DateTimeField(null=True, blank=True)

urls.py

path("calendar", view=apps_calendar_view, name="calendar"),
path('calendar/all_events/', view=apps_calendar_all_events, name='calendar.all_events'),

views.py

def apps_calendar_view(request):
    all_events = CalendarEvents.objects.all()
    context = {
        "events":all_events,
    }
    return render(request,'apps/apps-calendar.html', context)

def apps_calendar_all_events(request):
    all_events = CalendarEvents.objects.all()
    out = []
    for event in all_events:
        out.append({
        'type':event.type,
        'title': event.name,
        'location':event.location,
        'id': event.id,
        'start': event.start.strftime("%m/%d/%Y, %H:%M:%S"),
        'end': event.end.strftime("%m/%d/%Y, %H:%M:%S"),
        })
    print(out)
    return JsonResponse(out, safe=False)

apps-calendar.html

    <div class="col-xl-9">
        <div class="card card-h-100">
            <div class="card-body">
                <div id="calendar">
                    
                </div>
            </div>
        </div>
    </div>

<script>
    import { Calendar } from '@fullcalendar/core'
    import dayGridPlugin from '@fullcalendar/daygrid'

    const calendarEl = document.getElementById('calendar')
    const calendar = new Calendar(calendarEl, {
    plugins: [
        dayGridPlugin
        // any other plugins
    ],
    initialView: 'dayGridMonth',
    weekends: false,
    events: [
        '/calendar/all_events'
    ]
    })

    calendar.render()
</script>

从这张图片中,我可以加载基本的

fullcalendar
并在日历上获取一些示例数据(来自预加载 .init.js 的示例数据),但是 我的对象事件 不会发布。我的事件上下文打印在#1,未显示在#2;只有样本数据是

这是我想要在日历上显示的

apps_calendar_all_events
的 JSON 输出。理想情况下应位于上图中的#2。

javascript python django fullcalendar
© www.soinside.com 2019 - 2024. All rights reserved.