Аргумент 1 функции strptime() должен быть str, а не DeferredAttribute

У меня тут проблемы, я делаю сайт для путешествий и виз, пытаюсь убедиться, что мы знаем о каждой встрече за 10 дней до нее. Поэтому я создал свойство модели, которое поможет мне сравнивать даты, но у меня проблемы ошибка за ошибкой вот поле модели

class customer(models.Model):
first_name = models.CharField(max_length=255, default='')
last_name = models.CharField(max_length=255, default='')
biometry_date = models.DateField(blank=True, default='', null=True)


@property
def is_due(self):
    datetime_object = datetime.strptime(Profile.biometry_date, '%Y-%m-%d')
    t2 = datetime.now().date()
    t3 = timedelta(days=30)
    return  datetime_object - t2<= t3

и в шаблоне Html

{% if profile.is_due %}
<td class="text-right">
<span class="badge badge-danger">{{ profile.biometry_date }}</span>
</td>
{% else %}
<td>{{ customer.biometry_date }}</td>
{% endif %}

Пожалуйста, помогите мне Спасибо

Во-первых, как указал Виллем - вам не нужно использовать strptime из поля, это уже datetime.datetime объект. И вы должны использовать self, когда вы хотите использовать значения поля объекта. Итак:

def is_due(self):
    datetime_object = self.biometry_date

Во-вторых, мне кажется, вы пытаетесь использовать profile и customer как взаимозаменяемые. Решите, какой из них вы собираетесь использовать или, по крайней мере, разделите контекст.

Вернуться на верх