Я пытаюсь создать пользовательскую модель для поля history_date в django simple-history, но при попытке сохранить в БД я получаю сообщение об ошибке NOT NULL constraint failed
У меня уже есть некоторые данные в текущих полях из модели history_date
по умолчанию - пример 2019-05-29 19:19:03.922533
, но я хочу изменить это на День / Месяц / Год
Я импортировал дату и время с from datetime import datetime
Документы: https://django -simple-history.readthedocs.io / en / 2.7.0 / history_model.html # custom-history-date
Модель:
class NodesData(models.Model):
Node = models.CharField(max_length=20, default="Anonymous Node")
NodeIP = models.CharField(max_length=15)
NodeCountry = models.CharField(max_length=30, default="Not Found")
NodeCity = models.CharField(max_length=30, default="Not Found")
NodeISP = models.CharField(max_length=30, default="Not Found")
NodeLat = models.CharField(max_length=15, default="Not Found")
NodeLon = models.CharField(max_length=15, default="Not Found")
Node_id = models.CharField(max_length=128, default="Not Found")
Node_Cores = models.CharField(max_length=15, default="Not Found")
Node_Subtask_Success = models.CharField(max_length=15, default="Not Found")
Node_Subtask_Error = models.CharField(max_length=15, default="Not Found")
Node_Subtask_Timeout = models.CharField(max_length=15, default="Not Found")
Node_Task_Requested = models.CharField(max_length=15, default="Not Found")
Node_Blender_Performance = models.CharField(max_length=15, default="Not Found")
Node_OS = models.CharField(max_length=10, default="Not Found")
Node_OS_system = models.CharField(max_length=10, default="Not Found")
Node_OS_release = models.CharField(max_length=25, default="Not Found")
Node_OS_version = models.CharField(max_length=300, default="Not Found")
Node_OS_windows_edition = models.CharField(max_length=25, default="Not Found", blank=True)
Node_OS_linux_distribution = models.CharField(max_length=50, default="Not Found", blank=True)
Node_Version = models.CharField(max_length=8, default="Not Found")
Node_Memory = models.CharField(max_length=15, default="Not Found")
Node_Disk = models.CharField(max_length=15, default="Not Found")
history = HistoricalRecords()
__history_date = None
@property
def _history_date(self):
return self.__history_date
@_history_date.setter
def _history_date(self, value):
value = datetime.today().strftime('%d-%m-%Y')
self.__history_date = value
Traceback:
Traceback (most recent call last):
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 298, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.IntegrityError: NOT NULL constraint failed: backgroundtasks_historicalnodesdata.history_date
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/background_task/tasks.py", line 43, in bg_runner
func(*args, **kwargs)
File "/home/django/copypaste/cleanup/backgroundtasks/tasks.py", line 243, in csvscraper
foo.save()
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/models/base.py", line 718, in save
force_update=force_update, update_fields=update_fields)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/models/base.py", line 758, in save_base
update_fields=update_fields, raw=raw, using=using,
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/dispatch/dispatcher.py", line 175, in send
for receiver in self._live_receivers(sender)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/dispatch/dispatcher.py", line 175, in <listcomp>
for receiver in self._live_receivers(sender)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/simple_history/models.py", line 459, in post_save
self.create_historical_record(instance, created and "+" or "~", using=using)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/simple_history/models.py", line 501, in create_historical_record
history_instance.save(using=using)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/models/base.py", line 718, in save
force_update=force_update, update_fields=update_fields)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/models/base.py", line 748, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/models/base.py", line 831, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/models/base.py", line 869, in _do_insert
using=using, raw=raw)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/models/query.py", line 1136, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1289, in execute_sql
cursor.execute(sql, params)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/backends/utils.py", line 68, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "/home/django/copypaste/cleanup/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 298, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: NOT NULL constraint failed: backgroundtasks_historicalnodesdata.history_date