Ошибка : недопустимый литерал для int() с основанием 10: b'20 Feb'

Я работаю с Wagtail и создаю модель приложения.

publish_date = models.DateField(
        max_length=300,
        blank=True,
        null=True,
        default="20 Feb",
        verbose_name="First publish date",
        help_text="This shows the first publish date"
    )

Думаю, проблема в том, что тип поля - DateField, но значение, которое я отправляю, - '20 Feb'.

Есть идеи?

Вы не можете использовать строку, DateField требует объект datetime.date. Если вам всегда нужна одна и та же дата, вы можете написать:

import datetime
publish_date = models.DateField(
        max_length=300,
        blank=True,
        null=True,
        default=datetime.date(2022, 2, 20),  # Or another date
        verbose_name="First publish date",
        help_text="This shows the first publish date"
    )

Если вы хотите, чтобы по умолчанию использовалась текущая дата:

import datetime
publish_date = models.DateField(
        max_length=300,
        blank=True,
        null=True,
        default=datetime.date.today,
        verbose_name="First publish date",
        help_text="This shows the first publish date"
    )

Если вы поддерживаете часовые пояса, вам следует использовать django.utils.timezone вместо datetime.

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