我是Django的新手,所以我决定构建一个简单的应用程序来测试我的技能。在其中一个模型表单上,我有一个DateTimeField,但它只默认为TextField。我想创建一个自定义的日期时间选择器与引导,但我不知道如何实现它。我遵循了Tempus Dominus Bootstrap 4here的教程。我有他们说的一切,但当我导航到我的窗体时,它会显示一个错误:“BootstrapDateTimePickerInput”对象没有属性“is\u hidden”。你知道吗
你知道吗型号.py你知道吗
from django.db import models
class ToDoItem(models.Model):
title = models.CharField(max_length=100)
description = models.TextField()
start_time = models.DateTimeField()
end_time = models.DateTimeField()
remind_time = models.DateTimeField()
你知道吗小工具.py你知道吗
from django.forms import DateTimeField
class BootstrapDateTimePickerInput(DateTimeField):
template_name = 'main/bootstrap_datetimepicker.html'
def get_context(self, name, value, attrs):
datetimepicker_id = 'datetimepicker_{name}'.format(name=name)
if attrs is None:
attrs = dict()
attrs['data-target'] = '#{id}'.format(id=datetimepicker_id)
attrs['class'] = 'form-control datetimepicker-input'
context = super().get_context(name, value, attrs)
context['widget']['datetimepicker_id'] = datetimepicker_id
return context
你知道吗表单.py你知道吗
from django import forms
from .widgets import BootstrapDateTimePickerInput
from .models import ToDoItem
class NewEventForm(forms.ModelForm):
start_time = forms.DateTimeField(
input_formats=['%d/%m/%Y %H:%M'],
widget=BootstrapDateTimePickerInput()
)
end_time = forms.DateTimeField(
input_formats=['%d/%m/%Y %H:%M'],
widget=BootstrapDateTimePickerInput()
)
remind_time = forms.DateTimeField(
input_formats=['%d/%m/%Y %H:%M'],
widget=BootstrapDateTimePickerInput()
)
class Meta:
model = ToDoItem
fields = ['title', 'description', 'start_time', 'end_time', 'remind_time']
你知道吗视图.py你知道吗
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.views.generic import CreateView
from .models import ToDoItem
from .forms import NewEventForm
@login_required(login_url='/login')
def home(request):
context = {
'test':'test'
}
return render(request, 'main/home.html', context)
@login_required(login_url='/login')
def new_event(request):
if request.method == 'POST':
form = NewEventForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'Event Successfully Created!')
return redirect('app-home')
else:
form = NewEventForm()
return render(request, 'main/todoitem_form.html', {'form': form})
待办事项_表单.html你知道吗
{% extends "main/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section">
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">New Event</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Create</button>
</div>
</form>
</div>
{% endblock content %}
目前没有回答
相关问题 更多 >
编程相关推荐