首先感谢您的宝贵时间。基本预订系统
我需要输入2个日期(模型上的2个字段)并获取它们之间的差异,然后它应该输出此差异,以天为单位乘以一个常数(如果小于3则为常数)或其他常数(如果大于该常数)。我从这里尝试了很多问题,并阅读了datetime和timedelta文档,但我没有在timedelta上获得成功。
这些是我的模特
class Visitante(models.Model):
Nome = models.CharField(max_length=30)
Data1 = models.DateField(blank=True)
Data2= models.DateField(blank=True)
RG = models.CharField(max_length=9)
这些是我的观点:
from .models import Cliente, Visitante
from django.views import generic
from django import forms
from django.views.generic import View
from django.forms import ModelForm
from datetime import datetime, timedelta
class IndexView (generic.TemplateView):
template_name = 'index2.html'
class DetailView (generic.DetailView):
model = Cliente
template_name = 'detail.html'
def reserv (request):
d1= Visitante.Data1
d2= Visitante.Data2
delta = d1 - d2
delta.days
return render(request, 'reserv-form.html', {
'date': delta
})
然后我收到此错误:
/ pservas / reserv-form /的TypeError-不支持的操作数类型- 'DeferredAttribute'和'DeferredAttribute
答案 0 :(得分:0)
您正在使用模型类,而不是模型的实例来尝试访问字段。您应该通过执行一些查询来获取实例,例如Visitante.objects.filter(...).first()
。使用CreateView创建新模型时,您可能还会得到一个实例。
在Django shell python manage.py shell
中探索这些内容以获得更快的反馈可能会有所帮助。