Ошибка при публикации статьи и прикреплении фотографий

Пишу свой первый крупный проект на Django. Для его реализации мне необходим расширенный редактор статей. Таковым я выбрал ckeditor. Прикрепил его, согласно правилам к действующей модели post. Провел миграцию. Редактор появился, но не работает. При попытке вставить фотографию выдает ошибку и требует прикрепить фото по ссылке. введите сюда описание изображения а при попытке публикации статьи без фотографий выдает следующее:

> > IntegrityError at /admin/prosvet_logs/post/add/ NOT NULL constraint failed: prosvet_logs_post.publish Request Method:   POST Request
> URL:  http://127.0.0.1:8000/admin/prosvet_logs/post/add/ Django
> Version:  3.1.2 Exception Type:   IntegrityError Exception Value:  NOT
> NULL constraint failed: prosvet_logs_post.publish Exception
> Location: C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\backends\sqlite3\base.py,
> line 413, in execute Python
> Executable:   C:\Users\DNS\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\python.exe
> Python Version:   3.8.6 Python Path:   ['C:\\Users\\DNS\\prosvet', 
> 'C:\\Program ' 
> 'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\\python38.zip',
> 'C:\\Program ' 
> 'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\\DLLs',
> 'C:\\Program ' 
> 'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\\lib',
> 'C:\\Users\\DNS\\AppData\\Local\\Microsoft\\WindowsApps\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0',
> 'C:\\Users\\DNS\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python38\\site-packages',
> 'C:\\Program ' 
> 'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0',
> 'C:\\Program ' 
> 'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\\lib\\site-packages']
> Server time:  Fri, 18 Dec 2020 10:23:38 +0000 Traceback Switch to
> copy-and-paste view
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\backends\utils.py,
> line 84, in _execute
>                 return self.cursor.execute(sql, params) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\backends\sqlite3\base.py,
> line 413, in execute
>         return Database.Cursor.execute(self, query, params) … ▶ Local vars The above exception (NOT NULL constraint failed:
> prosvet_logs_post.publish) was the direct cause of the following
> exception:
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\core\handlers\exception.py,
> line 47, in inner
>                 response = get_response(request) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\core\handlers\base.py,
> line 179, in _get_response
>                 response = wrapped_callback(request, *callback_args, **callback_kwargs) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\contrib\admin\options.py,
> line 614, in wrapper
>                 return self.admin_site.admin_view(view)(*args, **kwargs) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\utils\decorators.py,
> line 130, in _wrapped_view
>                     response = view_func(request, *args, **kwargs) … ▶ Local vars
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\views\decorators\cache.py,
> line 44, in _wrapped_view_func
>         response = view_func(request, *args, **kwargs) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\contrib\admin\sites.py,
> line 233, in inner
>             return view(request, *args, **kwargs) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\contrib\admin\options.py,
> line 1653, in add_view
>         return self.changeform_view(request, None, form_url, extra_context) … ▶ Local vars
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\utils\decorators.py,
> line 43, in _wrapper
>         return bound_method(*args, **kwargs) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\utils\decorators.py,
> line 130, in _wrapped_view
>                     response = view_func(request, *args, **kwargs) … ▶ Local vars
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\contrib\admin\options.py,
> line 1534, in changeform_view
>             return self._changeform_view(request, object_id, form_url, extra_context) … ▶ Local vars
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\contrib\admin\options.py,
> line 1580, in _changeform_view
>                 self.save_model(request, new_object, form, not add) … ▶ Local vars
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\contrib\admin\options.py,
> line 1093, in save_model
>         obj.save() … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\models\base.py,
> line 753, in save
>         self.save_base(using=using, force_insert=force_insert, … ▶ Local vars
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\models\base.py,
> line 790, in save_base
>             updated = self._save_table( … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\models\base.py,
> line 895, in _save_table
>             results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw) … ▶ Local vars
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\models\base.py,
> line 933, in _do_insert
>         return manager._insert( … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\models\manager.py,
> line 85, in manager_method
>                 return getattr(self.get_queryset(), name)(*args, **kwargs) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\models\query.py,
> line 1254, in _insert
>         return query.get_compiler(using=using).execute_sql(returning_fields) … ▶
> Local vars
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\models\sql\compiler.py,
> line 1397, in execute_sql
>                 cursor.execute(sql, params) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\backends\utils.py,
> line 98, in execute
>             return super().execute(sql, params) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\backends\utils.py,
> line 66, in execute
>         return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) … ▶ Local vars
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\backends\utils.py,
> line 75, in _execute_with_wrappers
>         return executor(sql, params, many, context) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\backends\utils.py,
> line 84, in _execute
>                 return self.cursor.execute(sql, params) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\utils.py,
> line 90, in __exit__
>                 raise dj_exc_value.with_traceback(traceback) from exc_value … ▶ Local vars
> C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\backends\utils.py,
> line 84, in _execute
>                 return self.cursor.execute(sql, params) … ▶ Local vars C:\Users\DNS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\django\db\backends\sqlite3\base.py,
> line 413, in execute
>         return Database.Cursor.execute(self, query, params) … ▶ Local vars

На данный момент у меня следующий код:

models.py

class Post(models.Model):
    title = models.CharField(max_length=250)
    slug = models.SlugField(max_length=50, unique=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE, 
    related_name='news_posts', null=True, blank=True)
    body = RichTextUploadingField()


def __str__(self):
    return self.title

class Meta:
    verbose_name = u"Новость"
    verbose_name_plural = u"Новости"

admin.py

from django.contrib import admin
from .models import Post

from prosvet_logs.models import About_us, Post, Contacts, Cooperation, Dialogs, Monologs, Projects


class PostAdmin(admin.ModelAdmin):
    prepopulated_fields = {"slug": ("title",)}

admin.site.register(About_us)
admin.site.register(Post, PostAdmin)
admin.site.register(Cooperation)
admin.site.register(Contacts)
admin.site.register(Dialogs)
admin.site.register(Monologs)
admin.site.register(Projects )

url.py

urlpatterns = [
#Домашняя страница
url(r'', views.index, name ='index'),

#редактор статей
url(r'^ckeditor/', include('ckeditor_uploader.urls')),

] 

settings.py

INSTALLED_APPS = [
    'ckeditor',
    'ckeditor_uploader', 
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'prosvet_logs',
]

CKEDITOR_UPLOAD_PATH = 'uploads/'

CKEDITOR_CONFIGS = {
    'default': {
       'toolbar': 'None'
    },
}

Ответы (1 шт):

Автор решения: JS_ 88

Проблему решил. Дело было в базе данных. Удалил ее, удалил все миграции. Создал заново базу, применил миграцию. Все заработало.

→ Ссылка