#python #django #django-models #django-cms
#python #django #django-модели #django-cms
Вопрос:
Я использую Django-CMS и создал несколько пользовательских плагинов, которые я использую на нескольких страницах, но на одной из страниц я не могу опубликовать, и я не могу копировать вложенные плагины, которые выдают мне одну и ту же ошибку в обеих ситуациях:
Internal Server Error: /en/admin/cms/page/copy-plugins/
Traceback (most recent call last):
File "libsite-packagesdjangocorehandlersbase.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "libsite-packagesdjangocorehandlersbase.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "libsite-packagesdjangoutilsdecorators.py", line 149, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "libsite-packagesdjangoviewsdecoratorscache.py", line 57, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "libsite-packagesdjangocontribadminsites.py", line 244, in inner
return view(request, *args, **kwargs)
File "libsite-packagesdjangoutilsdecorators.py", line 67, in _wrapper
return bound_func(*args, **kwargs)
File "libsite-packagesdjangoviewsdecoratorshttp.py", line 42, in inner
return func(request, *args, **kwargs)
File "libsite-packagesdjangoutilsdecorators.py", line 63, in bound_func
return func.__get__(self, type(self))(*args2, **kwargs2)
File "libsite-packagesdjangoviewsdecoratorsclickjacking.py", line 39, in wrapped_view
resp = view_func(*args, **kwargs)
File "libsite-packagesdjangoutilsdecorators.py", line 184, in inner
return func(*args, **kwargs)
File "libsite-packagescmsadminplaceholderadmin.py", line 363, in copy_plugins
plugins, target_placeholder, target_language, target_plugin_id)
File "libsite-packagescmsutilscopy_plugins.py", line 24, in copy_plugins_to
old_parent_cache, no_signals))
File "libsite-packagescmsmodelspluginmodel.py", line 319, in copy_plugin
new_plugin.save()
File "libsite-packagescmsmodelspluginmodel.py", line 240, in save
self.parent.add_child(instance=self)
File "libsite-packagestreebeardmp_tree.py", line 970, in add_child
return MP_AddChildHandler(self, **kwargs).process()
File "libsite-packagestreebeardmp_tree.py", line 361, in process
newobj.save()
File "libsite-packagescmsmodelspluginmodel.py", line 248, in save
super(CMSPlugin, self).save(*args, **kwargs)
File "libsite-packagesdjangodbmodelsbase.py", line 708, in save
force_update=force_update, update_fields=update_fields)
File "libsite-packagesdjangodbmodelsbase.py", line 736, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "libsite-packagesdjangodbmodelsbase.py", line 820, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "libsite-packagesdjangodbmodelsbase.py", line 859, in _do_insert
using=using, raw=raw)
File "libsite-packagesdjangodbmodelsmanager.py", line 122, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "libsite-packagesdjangodbmodelsquery.py", line 1039, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "libsite-packagesdjangodbmodelssqlcompiler.py", line 1060, in execute_sql
cursor.execute(sql, params)
File "libsite-packagesdjangodbbackendsutils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "libsite-packagesdjangodbbackendsutils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "libsite-packagesdjangodbbackendsmysqlbase.py", line 117, in execute
six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2])
File "libsite-packagesdjangodbbackendsmysqlbase.py", line 112, in execute
return self.cursor.execute(query, args)
File "buildbdist.win-amd64eggMySQLdbcursors.py", line 205, in execute
self.errorhandler(self, exc, value)
File "buildbdist.win-amd64eggMySQLdbconnections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
IntegrityError: (1048, "Column 'position' cannot be null")
Я проверил в своей базе данных, и в cms_cmsplugin
таблице существует столбец с именем position
, но в нем нет записи position null
. Вы хоть представляете, что происходит?
Комментарии:
1.
position
Столбец был определен таким образом, что он не может содержатьNULL
значения. Ваш код попытался создать строку, содержащую значение NULL для этого столбца, поэтому было вызвано исключение.2. @JohnGordon Но у меня в моих пользовательских плагинах нет поля с именем position (я проверил). Поэтому
position
он должен быть из таблиц django-cms.3. @patricia можете ли вы обновить свой вопрос, чтобы включить версии DjangoCMS и django? Я считаю, что эта проблема была исправлена в >= 3.3.x
4. @Paulo это действительно была проблема с версией, мне пришлось обновить версии django cms и django, а затем все заработало нормально.