есть модель https://pastebin.com/aNFKTNDb.
запись добавляется все нормально, однако когда я делаю doctype = Dicti.objects.get(pk=1) у меня выходить ошибка преобразования даты
>>> doctype = Dicti.objects.get(pk=1)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/models/query.py", line 425, in get
num = len(clone)
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/models/query.py", line 269, in __len__
self._fetch_all()
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/models/query.py", line 1308, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/models/query.py", line 53, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/models/sql/compiler.py", line 1156, in execute_sql
cursor.execute(sql, params)
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/backends/utils.py", line 98, in execute
return super().execute(sql, params)
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/backends/utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/home/alexander/repos/AIO/venv/lib64/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 413, in execute
return Database.Cursor.execute(self, query, params)
File "/usr/lib64/python3.9/sqlite3/dbapi2.py", line 64, in convert_date
return datetime.date(*map(int, val.split(b"-")))
ValueError: invalid literal for int() with base 10: b'10 05:32:05.603594'
по ошибке не подскажу, а в моделе зачем ты на 12 строке if делаешь а потом его повторяешь на 13 строке? Два if делают одно и тоже, вот хорошая реализация Timestamped, можешь просто использовать этот модуль https://github.com/audiolion/django-behaviors#timestamped-behavior
я это делаю наперед мне в будущем понадобится символьная переменная обозначающая тип операции. Поэтому я с помощью тернарного оператора его запоминаю а потом по ней ифом прохожусь.
ты всегда можешь спросить if self.pk да - обновление; нет - запись; в методе save() в моделе
кстати я не уверен но возможно ошибка из-за такой записи? self.updated = django.utils.timezone.now() Почему не вынести в импорт from django.utils import timezone self.updated = timezone.now()
Да, но "operation" гораздо меньше символов чем "('I' if self.pk else 'U')"
Ок проверю спасибо
лишние ифы зло
Неа все равно та же самая ошибка
твоя ошибка говорит о том что он не может строчку в число преобразовать, ищи где-то не те типы используешь/передаешь
Гыыы миграции почему-то в первый раз не прошлись 🤦🏿 спасибо за помощь
👍👍
Обсуждают сегодня