timedelta между 2 входными полями - PullRequest
0 голосов
/ 23 декабря 2018

прежде всего спасибо за ваше время.Базовая система бронирования
Мне нужно ввести 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
            })

затем я получаю эту ошибку:

TypeError в / reservas / reserv-form / неподдерживаемых типах операндов для -: 'DeferredAttribute' и 'DeferredAttribute

1 Ответ

0 голосов
/ 23 декабря 2018

Вы используете класс модели, а не экземпляр модели, чтобы попытаться получить доступ к полям.Вы должны получить экземпляр, выполнив некоторый запрос, например Visitante.objects.filter(...).first().Вы также можете получить экземпляр при создании новой модели с использованием CreateView.

Это может помочь изучить эти вещи в оболочке Django python manage.py shell для более быстрой обратной связи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...