gpt4 book ai didi

python - Django 中的全日历

转载 作者:太空狗 更新时间:2023-10-30 00:24:55 25 4
gpt4 key购买 nike

所以,我有一个约会模型

class Appointment(models.Model):
user = models.ForeignKey(User)
date = models.DateField()
time = models.TimeField()
doctorName = models.CharField(max_length=50)`

我想在 FullCalendar 工具中实现它。我什至不知道如何开始。任何帮助表示赞赏。谢谢。

最佳答案

既然你的问题表明你没有尝试过任何东西,我猜你知道 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");
}


})
})

})

关于python - Django 中的全日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39902405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com