我想在我的django项目中使用fullcalendar jquery插件。我有一个入门模型
class Entry(models.Model):
date = models.DatetimeField()
它只有一个日期属性。我知道fullcalendar使用start和end,但也会使用start和end:)
我的ajax视图如下
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')
我的模板.html
<div id="calendar"></div>
<script>
$(document).ready(function (){
$("#calendar").fullCalendar({
events:"calendar/eventfeeds/"
});
});
我必须在我的数据库中的测试对象,所有在今天的日期和四个以上在以前的日子。我还启用了时区,因此我的模型存储了感知的datetime对象
但fullcalendar不显示事件。完整的日历从今天的日期(11月25日)开始。所以我得到的是
start, end = 2013-10-27 00:00:00+00:00, 2013-12-08 00:00:00
(为什么这是因为我得到了十一月的观点?)
[<Entry: doctor - Title>, <Entry: doctor - New entry>, <Entry: doctor - Entry3>,
,,]
通常情况下,它获取所有条目,因为开始和结束日期不是它们应该的日期(记住11月视图)
和html" target="_blank">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"}']
开始日期更改为ISO8601格式。关于结束日期,它在文档中说,如果事件对象没有结束日期,它将使用结束日期作为开始日期之后的120分钟。因此它是自动填充的。但事情不会...所以我做错了什么?
Edit1:转到Calendar/EventsFeed/,我得到一个空页面。意味着不返回json对象....??Edit2:我错了,eventfeeds通常会返回json,我只是在EDIT1中选中它时没有传递任何GET参数
解决了。我想fullcalendar想要一个包含json对象的列表,但我返回的是纯json对象。我所做的是
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')
我没有dumpbed每一个json_entry,而是只dumpbed了一次json_list。工作得像个魅力。谢谢大家
FullCalendar 是一个 jQuery 的日历插件。如下图所示:
ember-fullcalendar ember-fullcalendar brings the power of FullCalendar and FullCalendar Scheduler to Ember. Installation This addon works in Ember 2.12+ with no deprecations. To install it run: ember
问题内容: 所以我有个约会模特 我想在工具中实现这一点。我不确定如何开始。任何帮助表示赞赏。谢谢。 问题答案: 由于您的问题表明您没有尝试过任何东西,因此猜测您知道javascript,并尝试了一些完整的日历js。 假设您有一个名为Event的模型,用于在日历中显示不同的事件。 在您的views.py中 最后在模板中设置完整日历,其中包括必要的CSS,JS文件和HTML代码。然后, 动态地处理某些
FullCalendar 是一个极其优秀的 JS 日程表控件,功能强大且简单易懂,FullCalendar 是一个 jQuery 插件,它提供一个全尺寸,像事例中的拖拽日历。 它使用 AJAX 来为每个月提取事件并轻松地配置为使用您自己资料的格式 (扩展名为谷歌日历提供)。它是以可视方式自定义并公开为用户触发事件 (如单击或拖动事件) 挂钩。它是根据MIT 许可证领有牌照的开放源代码。
我正在使用Creative Tim的包“Light Bootstrap Dashboard Pro Angular”(参考:https://demos.creative-tim.com/light-bootstrap-dashboard-pro-Angular2/Dashboard) 在这个例子中,他使用了Fullcalendar,如下所示: 我已经尝试了(参见:fullcalendar&Angu
我对全日历有问题。我正在使用周视图(DefaultView:“Basic week”)和工具栏按钮“Today”、“Prev”、“Next”。当我点击“今天”按钮时,日历就会返回到当前的一周,但日期选择不会改变。我希望“日历”导航到“当前周”并在“日历”上选择“今天日期”。但我有麻烦重新定义‘今天’按钮点击事件。 代码示例:https://plnkr.co/edit/dv9yiq1cdjxffts