【发布时间】:2021-03-30 13:50:44
【问题描述】:
我正在 Django 中创建约会应用程序
the end time of the appointment = the start_time + 30 min
但我收到此错误,我在 stackoverflow 中尝试了一些解决方案,但对我没有任何效果
这是我的forms.py
class AppointmentForm(forms.ModelForm):
doctor = forms.ModelChoiceField(queryset=User.objects.filter(type_of_user=TypeOfUser.DOCTOR))
date = forms.DateField(widget=forms.DateInput(attrs={'type': 'date'}), input_formats=settings.DATE_INPUT_FORMATS)
start_time = forms.TimeField(widget=forms.DateInput(attrs={'type': 'time'}))
class Meta:
model = Appointment
fields = ('doctor', 'date', 'start_time',)
这是views.py
from datetime import timedelta
import datetime as dt
@login_required
def create_appointement(request):
user = User()
if request.user.is_patient():
form_appointement = AppointmentForm(request.POST or None)
if request.method=='POST':
form_appointement = AppointmentForm(request.POST or None)
if form_appointement.is_valid():
form_app = form_appointement.save(commit=False)
form_app.user_ho_add = request.user
form_app.end_time = form_app.start_time + dt.timedelta(minutes=30) ###
form_app.save()
messages.success(request, 'appointment added')
else:
messages.error(request, 'Error')
return render(request,'appointement/add_appointement1.html',{'form':form_appointement})
- 更新 -
我的模型.py
def defaultTitle():
id=''
try:
id = str(Appointment.objects.order_by('-id').first().id + 1)
except:
id = '1'
return 'patient ' + id
class Appointment(models.Model):
user_ho_add = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_ho_add_appointment')
patient = models.CharField(null=True,max_length = 200, default=defaultTitle)
doctor = models.ForeignKey(User, on_delete=models.CASCADE, related_name='doctor_app')
date = models.DateField(null=False, blank=False, default=timezone.now)
start_time = models.TimeField(null=True, blank=True, default=timezone.now)
end_time = models.TimeField(null=True, blank=True, default=timezone.now)
【问题讨论】:
-
这能回答你的问题吗? How to add delta to python datetime.time?
-
很抱歉,我在这个答案中尝试了所有的东西,但没有任何效果
-
发布你的models.py
-
我更新问题
-
@houhou 第一件事你不能将时间添加到 python 时间对象中。所以尝试不同的方法。