2个输入字段之间的时间增量

时间:2018-12-23 04:01:09

标签: python django datetime django-models time

首先感谢您的宝贵时间。基本预订系统
我需要输入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

1 个答案:

答案 0 :(得分:0)

您正在使用模型类,而不是模型的实例来尝试访问字段。您应该通过执行一些查询来获取实例,例如Visitante.objects.filter(...).first()。使用CreateView创建新模型时,您可能还会得到一个实例。

在Django shell python manage.py shell中探索这些内容以获得更快的反馈可能会有所帮助。