Timedelta между 2 полями ввода

прежде всего спасибо за ваше время. Базовая система бронирования
Мне нужно ввести 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 at /reservas/reserv-form/ unsupported operand type(s) for -: 'DeferredAttribute' and 'DeferredAttribute

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
131
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Клянусь богом, я пробую все. я должен создавать объект для каждой даты? Я получаю неподдерживаемые типы операндов для-: str и str

lucasrf27 09.01.2019 11:58

сложно отладить такое сообщение без кода, который его вызывает ... Вы пробовали в оболочке django? Можете ли вы обновить свой вопрос, указав бит, вызывающий ошибку?

Jieter 10.01.2019 11:50

Другие вопросы по теме