最近很多小伙伴都在问Django中的FullCalendar和django中的model这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展AgendaWeek中的Fullcalend
最近很多小伙伴都在问Django中的FullCalendar和django中的model这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展AgendaWeek 中的 Fullcalendar 水平事件、Angular fullCalendar 集成加载后不显示当前日期、angular – currentView.start为null fullcalendar、angular2使用PrimeNG-Scheduler实现FullCalendar-Scheduler等相关知识,下面开始了哦!
本文目录一览:- Django中的FullCalendar(django中的model)
- AgendaWeek 中的 Fullcalendar 水平事件
- Angular fullCalendar 集成加载后不显示当前日期
- angular – currentView.start为null fullcalendar
- angular2使用PrimeNG-Scheduler实现FullCalendar-Scheduler
Django中的FullCalendar(django中的model)
所以我有个约会模特
class Appointment(models.Model): user = models.ForeignKey(User) date = models.DateField() time = models.TimeField() doctorName = models.CharField(max_length=50)`
我想在FullCalendar
工具中实现这一点。我不确定如何开始。任何帮助表示赞赏。谢谢。
答案1
小编典典由于您的问题表明您没有尝试过任何东西,因此猜测您知道javascript,并尝试了一些完整的日历js。
假设您有一个名为Event的模型,用于在日历中显示不同的事件。
class Events(models.Model): even_id = models.AutoField(primary_key=True) event_name = models.CharField(max_length=255,null=True,blank=True) start_date = models.DateTimeField(null=True,blank=True) end_date = models.DateTimeField(null=True,blank=True) event_type = models.CharField(max_length=10,null=True,blank=True) def __str__(self): return self.event_name
在您的views.py中
def event(request): all_events = Events.objects.all() get_event_types = Events.objects.only(''event_type'') # if filters applied then get parameter and filter based on condition else return object if request.GET: event_arr = [] if request.GET.get(''event_type'') == "all": all_events = Events.objects.all() else: all_events = Events.objects.filter(event_type__icontains=request.GET.get(''event_type'')) for i in all_events: event_sub_arr = {} event_sub_arr[''title''] = i.event_name start_date = datetime.datetime.strptime(str(i.start_date.date()), "%Y-%m-%d").strftime("%Y-%m-%d") end_date = datetime.datetime.strptime(str(i.end_date.date()), "%Y-%m-%d").strftime("%Y-%m-%d") event_sub_arr[''start''] = start_date event_sub_arr[''end''] = end_date event_arr.append(event_sub_arr) return HttpResponse(json.dumps(event_arr)) context = { "events":all_events, "get_event_types":get_event_types, } return render(request,''admin/poll/event_management.html'',context)
最后在模板中设置完整日历,其中包括必要的CSS,JS文件和HTML代码。然后,
<script> $(document).ready(function() { $(''#calendar'').fullCalendar({ defaultDate: ''2016-07-19'', editable: true, eventLimit: true, // allow "more" link when too many events events: [ {% for i in events %} { title: "{{ i.event_name}}", start: ''{{ i.start_date|date:"Y-m-d" }}'', end: ''{{ i.end_date|date:"Y-m-d" }}'', }, {% endfor %} ] }); });</script>
动态地处理某些事件,您需要更改事件,例如,通过更改下拉列表,您需要过滤事件,
$(document).ready(function(){ $(''.event_types'').on(''change'',function(){ var event_type = $.trim($(this).val()); $.ajax({ url: "{% url ''manage-event'' %}", type: ''GET'', data:{"event_type":event_type}, cache: false, success: function (response) { var event_arr = $.parseJSON(response); $(''#calendar'').fullCalendar(''removeEvents''); $(''#calendar'').fullCalendar(''addEventSource'', event_arr); $(''#calendar'').fullCalendar(''rerenderEvents'' ); }, error: function () { alert("error"); } }) }) })
AgendaWeek 中的 Fullcalendar 水平事件
如何解决AgendaWeek 中的 Fullcalendar 水平事件?
在我的全日历中,当事件彼此具有相同的时间时,它会变成细/紧密的事件块 - 就像这样:
这使得阅读变得困难(如果有很多事件发生,那就更难了)。
我偶然发现了这个 question,这是我添加自定义 CSS 时得到的:
我尝试将 CSS 修改为这个
.some-classname {
width: 100%;
height: initial !important;
position: relative;
left: 0% !important;
margin-right: 0% !important;
}
这是结果:
然而缺少“会议1”,检查发现与“会议2”重叠
这就是我想要做的:
我正在使用 fullcalendar v.3.10.2。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Angular fullCalendar 集成加载后不显示当前日期
如何解决Angular fullCalendar 集成加载后不显示当前日期?
我按照以下链接在 angular 项目中安装 FullCalendar
Angular fullcalendar
我集成了 Angular FullCalendar 来显示日期。当我加载它时不显示日历。它只是 显示月份面板。单击预览或下一步按钮后,它会显示日期
这是我设置的日历选项
calendarOptions: CalendarOptions = {
initialView: ''dayGridMonth'',dateClick: this.handleDateClick.bind(this),eventClick: this.handleEvetClick.bind(this),initialDate: new Date(),height: 500,};
我们在下面的代码中嵌入了日历
<div>
<full-calendar [options]="calendarOptions"></full-calendar>
<div>
这是加载后的截图
点击预览或下一步按钮后
我寻求你的帮助来解决这个问题,需要在加载时自定义初始日期
(即这个月是 2021 年 7 月,我需要从 12 月开始加载日历)
像上面一样,我需要在加载时动态自定义初始日期
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
angular – currentView.start为null fullcalendar
ORIGINAL EXCEPTION: TypeError: Cannot read property 'clone' of null ORIGINAL STACKTRACE: TypeError: Cannot read property 'clone' of null at _fetchEventSource (http://localhost:8100/build/js/fullcalendar.js:10703:16) at fetchEventSource (http://localhost:8100/build/js/fullcalendar.js:10635:3) at fetchEvents (http://localhost:8100/build/js/fullcalendar.js:10629:4) at fetchAndRenderEvents (http://localhost:8100/build/js/fullcalendar.js:9789:3) at getAndRenderEvents (http://localhost:8100/build/js/fullcalendar.js:9780:4) at renderView (http://localhost:8100/build/js/fullcalendar.js:9671:6) at initialRender (http://localhost:8100/build/js/fullcalendar.js:9588:3) at Calendar_constructor.render (http://localhost:8100/build/js/fullcalendar.js:9552:4) at HTMLdivelement.<anonymous> (http://localhost:8100/build/js/fullcalendar.js:53:13) at Function.each (http://localhost:8100/build/js/jquery.min.js:2:2813)
在进一步调试时,我发现currentView.start为null,同样设置为rangeStart,这是在fetchEventSource中调用clone的属性.我正在使用defaultview月份.我已经没想完了.请帮帮我.
P.S我正在尝试角度2.我使用的是fullCalendar版本2.7.3. jquery的版本是3.0.0,moment.js的版本是2.13.1.
以下代码导致错误.它是fullCalendar.js的一部分.
function _fetchEventSource(source,callback) { var i; var fetchers = FC.sourceFetchers; var res; for (i=0; i<fetchers.length; i++) { res = fetchers[i].call( t,// this,the Calendar object source,rangeStart.clone(),rangeEnd.clone(),options.timezone,callback ); if (res === true) { // the fetcher is in charge. made its own async request return; } else if (typeof res == 'object') { // the fetcher returned a new source. process it _fetchEventSource(res,callback); return; } } .....
解决方法
我决定回到jQuery 2.1.4,但如果你需要它,你可以使用
现任主分公司.它在版本2.9.x中使用fullcalender.
希望这可以帮助!
angular2使用PrimeNG-Scheduler实现FullCalendar-Scheduler
API使用Observables然后我在组件中订阅.这适用于事件,因为视图在事件更改时自动更新.
但是,当通过PrimeNG’选项’属性向FullCalendar提供’资源’时,事情不能按预期工作,因为设置’options’属性的代码在API调用有机会返回之前运行,因此空.
我确信这一点,因为如果我对资源进行硬编码,就会有所作为.
我可以想出几种方法来解决这个问题:
>使调用同步(希望避免这种情况)
>等待加载所有数据,然后(重新)渲染视图(使其与#1几乎相同)
>配置options.resources属性,以便在更改时,视图会更新,就像它对事件一样(这是最好的选择,但不确定它是否可能)
我将不胜感激任何帮助.谢谢.
<p-schedule [events]="events" [businessHours]="businessHours" [options]="optionConfig" > </p-schedule>
我的(现在)虚拟API
getEvents() { return this.http .get('assets/api/mockEvents.json') .map((response : Response) => <Appointment[]>response.json().data) .catch(this.handleError); } getResources() { return this.http .get('assets/api/mockResources.json') .map((response : Response) => <Resource[]>response.json().data) .catch(this.handleError); }
组件文件
ngOnInit() { this.schedulerService.getEvents() .subscribe(events=> this.events = events); this.schedulerService.getResources() .subscribe(resources => this.resources = resources); // ***** If the following code is uncommented,resources are displayed in Schedule view **** // this.resources = [ // new Resource(1,"Dr. Hibbert","blue",true,new BusinessHours("08:00","16:00")),// new Resource(2,"Dr. Simpson","green",new BusinessHours("10:00","18:00")) // ]; this.optionConfig = { "resources": this.resources } }
编辑:我想到的一件事是,只能通过它的setter方法设置this.resources属性.这样,我确切地知道何时设置了值,但问题仍然存在,如何在初始化之后将新值推送到调度组件.
解决方法
你可以使用angular2的异步管道来获取视图部分中的数据
<p-schedule [events]="events" [businessHours]="businessHours" [options]="optionConfig | async" > </p-schedule>
甚至你可以使用异步管道直接分配资源,而不是包装到optionConfig中,如果合适的话.
通过这样做,您既不需要进行同步调用,也不需要在加载数据后重新加入视图.
如果还有问题,请告诉我.
关于Django中的FullCalendar和django中的model的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于AgendaWeek 中的 Fullcalendar 水平事件、Angular fullCalendar 集成加载后不显示当前日期、angular – currentView.start为null fullcalendar、angular2使用PrimeNG-Scheduler实现FullCalendar-Scheduler等相关知识的信息别忘了在本站进行查找喔。
本文标签: