GVKun编程网logo

Django中的FullCalendar(django中的model)

4

最近很多小伙伴都在问Django中的FullCalendar和django中的model这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展AgendaWeek中的Fullcalend

最近很多小伙伴都在问Django中的FullCalendardjango中的model这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展AgendaWeek 中的 Fullcalendar 水平事件、Angular fullCalendar 集成加载后不显示当前日期、angular – currentView.start为null fullcalendar、angular2使用PrimeNG-Scheduler实现FullCalendar-Scheduler等相关知识,下面开始了哦!

本文目录一览:

Django中的FullCalendar(django中的model)

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 水平事件

如何解决AgendaWeek 中的 Fullcalendar 水平事件?

在我的全日历中,当事件彼此具有相同的时间时,它会变成细/紧密的事件块 - 就像这样:

enter image description here

这使得阅读变得困难(如果有很多事件发生,那就更难了)。

我偶然发现了这个 question,这是我添加自定义 CSS 时得到的:

enter image description here

我尝试将 CSS 修改为这个

.some-classname {
    width: 100%;
    height: initial !important;
    position: relative;
    left: 0% !important;
    margin-right: 0% !important;
}

这是结果:

enter image description here

然而缺少“会议1”,检查发现与“会议2”重叠

这就是我想要做的:

enter image description here

我正在使用 fullcalendar v.3.10.2。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Angular fullCalendar 集成加载后不显示当前日期

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>

这是加载后的截图

screen shot of Calendar After loading

点击预览或下一步按钮后

screenshot after Click the preview or next button

我寻求你的帮助来解决这个问题,需要在加载时自定义初始日期

(即这个月是 2021 年 7 月,我需要从 12 月开始加载日历)

像上面一样,我需要在加载时动态自定义初始日期

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

angular – currentView.start为null fullcalendar

angular – currentView.start为null fullcalendar

我使用Primeng的计划组件来显示具有计划功能的日历.但我一直得到以下错误:

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;
            }
        }
.....

解决方法

我试图包含 angular-ui / fullcalender时遇到了这个问题.这个模块的最后一个版本(1.0.2)依赖于jQuery 2.x并且不能与jQuery 3.x一起使用.根据 this,与jQuery 3一起使用的第一个版本的fullcalender是v2.8.0.

我决定回到jQuery 2.1.4,但如果你需要它,你可以使用
现任主分公司.它在版本2.9.x中使用fullcalender.

希望这可以帮助!

angular2使用PrimeNG-Scheduler实现FullCalendar-Scheduler

angular2使用PrimeNG-Scheduler实现FullCalendar-Scheduler

FullCalendar有一个名为Scheduler的附加组件,我试图与PrimeNG-Schedule组件一起使用.查看PrimeNG文档,我可以使用“选项”属性向FullCalendar发送任意信息.这确实有效,但是当我将数据检索连接到异步API时,会导致问题.

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属性.这样,我确切地知道何时设置了值,但问题仍然存在,如何在初始化之后将新值推送到调度组件.

解决方法

PS:我无法重现你的问题所以建议你没有经过测试

你可以使用angular2的异步管道来获取视图部分中的数据

<p-schedule 
    [events]="events" 
    [businessHours]="businessHours"
    [options]="optionConfig | async"
    >
</p-schedule>

甚至你可以使用异步管道直接分配资源,而不是包装到optionConfig中,如果合适的话.

通过这样做,您既不需要进行同步调用,也不需要在加载数据后重新加入视图.

如果还有问题,请告诉我.

关于Django中的FullCalendardjango中的model的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于AgendaWeek 中的 Fullcalendar 水平事件、Angular fullCalendar 集成加载后不显示当前日期、angular – currentView.start为null fullcalendar、angular2使用PrimeNG-Scheduler实现FullCalendar-Scheduler等相关知识的信息别忘了在本站进行查找喔。

本文标签: