FullCalendar和django [英] FullCalendar and django

查看:159
本文介绍了FullCalendar和django的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在我的django项目中使用fullcalendar jquery插件。我有一个条目模型

 类条目(models.Model):
date = models.DatetimeField()

它只有一个date属性。我知道fullcalendar使用开始和结束,但也会得到:)



我的ajax视图是以下

  def eventsFeed(request):
from django.utils.timezone import utc
from django.core.serializers.json import DjangoJSONEncoder

如果request.is_ajax():
print'它从fullCalendar()'的ajax

try:
start = datetime.fromtimestamp(int(request.GET.get('开始',False)))。replace(tzinfo = utc)
end = datetime.fromtimestamp(int(request.GET.get('end',False)))
除了ValueError:
start = datetime.now.replace(tzinfo = utc)
end = start + timedelta(days = 7)

entries = Entry.objects.filter(date__gte = start).filter date__lte = end)
打印条目
json_list = []
条目中的条目:
id = entry.id
title = entry.title
start = entry.date.strftime(%Y-%m-%dT%H:%M:%S)
allDay = False

json_entry = {'id':id,'start':start,'allDay':allDay,'title':title}
json_entry = json.dumps(json_entry ,cls = DjangoJSONEncoder)
json_list.append(json_entry)



返回HttpResponse(json_list,content_type ='application / json')

我的template.html

 < div id =calendar>< / div> 

< script>
$(document).ready(function(){
$(#calendar)。fullCalendar({
events:calendar / eventfeeds /
});
});

我现在必须在目前的数据库中进行测试,目前为止,还有以前的四天。另外我有时区启用,所以我的模型正在存储感知的datetime对象



但是fullcalendar不显示事件。全日历从今天开始(十一月二十五日)。所以我得到的是

 开始,结束= 2013-10-27 00:00:00 + 00:00,2013- 12-08 00:00:00 

(为什么我得到了十一月的视图?) / p>

  [<条目:医生 - 标题>,<条目:医生 - 新条目>,<条目:医生 - 条目3> ; 

,,]



它从开始和结束日期开始和结束日期都不是他们应该是的(记住十一月视图)



和json_list

  ['{start:2013-11-20T17:30:00,allDay:false,id:1,title title}',
'{start:2013-11-20T17:30:00,allDay:false,id:2,title:新条目
},{start:2013-11-20T17:30:00,allDay:false,id:3,title:Entry
3}' {start:2013-11-21T22:00:00,allDay:false,id:4,title:test
}','{start 2013-11-25T13:00:00,allDay:false,id:5,title:New e
n尝试},{start:2013-11-25T09:52:00,allDay:false,id:6,title:N
ew entry 2} ']

将开始日期更改为ISO8601格式。至于结束日期,它在文档中说,如果事件对象没有结束,它将在开始日期后120分钟使用结束日期。所以它是自动填充。但事件不会渲染...所以我做错了什么?



编辑1:去日历/事件进/我得到一个空白的页面。意思是json对象不返回....
EDIT2:我错了,eventfeeds会正常返回json,当我在EDIT1中检查时,我没有通过任何GET参数

解决方案

解决了我想fullcalendar想要一个列表与json对象,但我正在返回纯json对象。我所做的是

 条目中的条目:
id = entry.id
title = entry。 title
start = entry.date.strftime(%Y-%m-%dT%H:%M:%S)
allDay = False

json_entry = 'id':id,'start':start,'allDay':allDay,'title':title}
json_list.append(json_entry)

返回HttpResponse(json.dumps(json_list ),content_type ='application / json')

我没有json.dumpbed每个json_entry但只一次json_list。并且像一个魅力一样工作。谢谢你们所有的


I want to use fullcalendar jquery plugin in my django project. I have an Entry model

class Entry(models.Model):
    date = models.DatetimeField()

it only has a date attribute. I know that fullcalendar uses start and end but will get to that too :)

my ajax view is the following

def eventsFeed(request):
    from django.utils.timezone import utc
    from django.core.serializers.json import DjangoJSONEncoder

    if request.is_ajax():
        print 'Its ajax from fullCalendar()'

    try:
        start = datetime.fromtimestamp(int(request.GET.get('start', False))).replace(tzinfo=utc)
        end = datetime.fromtimestamp(int(request.GET.get('end',False)))
    except ValueError:
        start = datetime.now.replace(tzinfo=utc)
        end = start + timedelta(days=7)

    entries = Entry.objects.filter(date__gte=start).filter(date__lte=end)
    print entries
    json_list = []
    for entry in entries:
        id = entry.id
        title = entry.title
        start = entry.date.strftime("%Y-%m-%dT%H:%M:%S")
        allDay = False

        json_entry = {'id':id, 'start':start, 'allDay':allDay, 'title': title}
        json_entry = json.dumps(json_entry, cls=DjangoJSONEncoder)
        json_list.append(json_entry)



    return HttpResponse(json_list, content_type='application/json')

my template.html

<div id="calendar"></div>

<script>
    $(document).ready(function (){
         $("#calendar").fullCalendar({
             events:"calendar/eventfeeds/"
         });
    });

i have to objects for tests right now in my db all at todays date and four more in former days. Also i have timezone enabled so my models are storing aware datetime objects

But fullcalendar doesn't show events. Full Calendar starts from todays date (25th of november). So what i get is

start, end = 2013-10-27 00:00:00+00:00, 2013-12-08 00:00:00 

(why is that since i got the november view?)

[<Entry: doctor - Title>, <Entry: doctor - New entry>, <Entry: doctor - Entry3>,

, , ]

normally it gets all entries since the start and end dates are not the ones they supposed to be(remember November view)

and the json_list

['{"start": "2013-11-20T17:30:00", "allDay": false, "id": 1, "title": "Title"}',
 '{"start": "2013-11-20T17:30:00", "allDay": false, "id": 2, "title": "New entry
"}', '{"start": "2013-11-20T17:30:00", "allDay": false, "id": 3, "title": "Entry
3"}', '{"start": "2013-11-21T22:00:00", "allDay": false, "id": 4, "title": "test
"}', '{"start": "2013-11-25T13:00:00", "allDay": false, "id": 5, "title": "New e
ntry"}', '{"start": "2013-11-25T09:52:00", "allDay": false, "id": 6, "title": "N
ew entry 2"}']

Changed start date to be in ISO8601 format. As for end date it says in documentation that if event object doesn't have enddate it uses end date as 120 minutes after start date. So it is auto populated. But events don't render...So what am i doing wrong?

EDIT1: going to calendar/eventsfeed/ I get an empty page. Meaning json objects are not returned....?? EDIT2: I was wrong, eventfeeds does return json normally, I just didn't pass any GET params when checked it in EDIT1

解决方案

Solved it. I guess fullcalendar wanted a list with json objects, but i was returning plain json objects. What I did was

for entry in entries:
    id = entry.id
    title = entry.title
    start = entry.date.strftime("%Y-%m-%dT%H:%M:%S")
    allDay = False

    json_entry = {'id':id, 'start':start, 'allDay':allDay, 'title': title}
    json_list.append(json_entry)

return HttpResponse(json.dumps(json_list), content_type='application/json')

I didn't json.dumpbed every json_entry but only one time the json_list. And worked like a charm. Thank you all

这篇关于FullCalendar和django的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆