FullCalendar in Django

前端 未结 2 513
孤独总比滥情好
孤独总比滥情好 2020-12-01 05:10

So, I have an appointment models

class Appointment(models.Model):
    user = models.ForeignKey(User)
    date = models.DateField()
    time = models.TimeFie         


        
2条回答
  •  我在风中等你
    2020-12-01 05:18

    You can use following code to add, remove, update event in full calendar:

    model:

    class Events(models.Model):
        id = models.AutoField(primary_key=True)
        name = models.CharField(max_length=255,null=True,blank=True)
        start = models.DateTimeField(null=True,blank=True)
        end = models.DateTimeField(null=True,blank=True)
    
        def __str__(self):
            return self.name
    

    view:

    def calendar(request):
        all_events = Events.objects.all()
        context = {
            "events":all_events,
        }
        return render(request,'calendar.html',context)
    
    def add_event(request):
        start = request.GET.get("start", None)
        end = request.GET.get("end", None)
        title = request.GET.get("title", None)
        event = Events(name=str(title), start=start, end=end)
        event.save()
        data = {}
        return JsonResponse(data)
    
    
    def update(request):
        start = request.GET.get("start", None)
        end = request.GET.get("end", None)
        title = request.GET.get("title", None)
        id = request.GET.get("id", None)
        event = Events.objects.get(id=id)
        event.start = start
        event.end = end
        event.name = title
        event.save()
        data = {}
        return JsonResponse(data)
    
    
    def remove(request):
        id = request.GET.get("id", None)
        event = Events.objects.get(id=id)
        event.delete()
        data = {}
        return JsonResponse(data)
    

    urls:

    url('^calendar', views.calendar, name='calendar'),
    url('^add_event$', views.add_event, name='add_event'),
    url('^update$', views.update, name='update'),
    url('^remove', views.remove, name='remove'),
    

    html:

    
    
        
        
        
        
        
        
        
    
    
    

    title


    Example:To add event to fullcalendar you should add event to your model or if you don't want to save them you should create event and send to fullcalendar(in def calendar). For example to add event to all Sundays of 2020:

    view:

    def calendar(request):
            from datetime import date, timedelta
            d = date(2020, 1, 1)
            d += timedelta(days=6 - d.weekday()) # First Sunday
            all_sunday_in_2020 = []
            while d.year != 2021:
                all_sunday_in_2020.append({'name': 'my-title', 'start': d, 'end': d 
                + timedelta(days=1)})
                d += timedelta(days=7)
                return render(request,'calendar.html',{'events':all_sunday_in_2020})
    

提交回复
热议问题