Django datetime TypeError: fromisoformat: аргумент должен быть str

Internal Server Error: /api/orders/add/ Traceback (most recent call last):strong tenter image description hereext File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner response = get_response(request) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\views\generic\base.py", line 84, in view return self.dispatch(request, *args, **kwargs) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\rest_framework\views.py", line 509, in dispatch response = self.handle_exception(exc) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception raise exc File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\rest_framework\views.py", line 506, in dispatch response = handler(request, *args, **kwargs) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\rest_framework\decorators.py", line 50, in handler return func(*args, **kwargs) File "C:\Users\kalya\OneDrive\Desktop\my app\backend\base\views\order_views.py", line 31, in addOrderItems order = Order.objects.create( File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\query.py", line 514, in create obj.save(force_insert=True, using=self.db) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\base.py", line 806, in save self.save_base( File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\base.py", line 857, in save_base updated = self._save_table( File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\base.py", line 1000, in save_table results = self.do_insert( File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\base.py", line 1041, in do_insert return manager.insert( File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\query.py", line 1434, in insert return query.get_compiler(using=using).execute_sql(returning_fields) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\sql\compiler.py", line 1620, in execute_sql
for sql, params in self.as_sql(): File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\sql\compiler.py", line 1547, in as_sql
value_rows = [ File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\sql\compiler.py", line 1548, in
[ File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\sql\compiler.py", line 1549, in
self.prepare_value(field, self.pre_save_val(field, obj)) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\sql\compiler.py", line 1487, in prepare_value value = field.get_db_prep_save(value, connection=self.connection) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\fields_init
.py", line 910, in get_db_prep_save return self.get_db_prep_value(value, connection=connection, prepared=False) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\fields_init
.py", line 1546, in get_db_prep_value value = self.get_prep_value(value) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\fields_init
.py", line 1524, in get_prep_value value = super().get_prep_value(value) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\fields_init
.py", line 1403, in get_prep_value return self.to_python(value) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\db\models\fields_init
.py", line 1485, in to_python
parsed = parse_datetime(value) File "C:\Users\kalya\OneDrive\Desktop\my app\myenv\lib\site-packages\django\utils\dateparse.py", line 114, in parse_datetime
return datetime.datetime.fromisoformat(value)enter image description here

Вы не можете использовать str() напрямую для модуля времени

используйте это:

def __str__(self):
    return self.createdAt

или использовать:

def __str__(self):
    return f"{self.createdAt.strftime('%d-%m-%Y')}"

форматы данных

сначала вам нужно удалить файлы из папки migrations и __ pycache __ foledr, и вам может понадобиться очистить базу данных
. после этого запустите python manage.py makemigrations в терминале появятся такие строки ''' Невозможно добавить ненулевое поле 'created_at' в customuser без указания значения по умолчанию. Это происходит потому, что базе данных нужно что-то для заполнения существующих строк. Пожалуйста, выберите исправление:

  1. Предоставить одноразовое значение по умолчанию сейчас (будет установлено для всех существующих строк с нулевым значением для этого столбца)
  2. Выйти и вручную определить значение по умолчанию в models.py. ''' тип 1 должен спросить вас ''' Пожалуйста, введите значение по умолчанию в формате Python. Доступны модули datetime и django.utils.timezone, поэтому в качестве значения можно указать, например, timezone.now. Введите 'exit', чтобы выйти из этой подсказки ''' typetimezone.now

и запустить python manage.py migrate будет работать идеально

Недавно у меня возникла та же проблема, я решил ее, вернувшись к более старому сохраненному файлу и попробовав снова.

Я добавил это к своим моделям

    class Post(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    title = models.CharField(max_length=255)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE, 
    related_name='posts')

    def __str__(self):
        return self.title

Если это не сработает, я где-то читал, что для этого нужно иметь python версии 3.9 или ниже.

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