Пишу свой первый крупный проект на Django. Для его реализации мне необходим расширенный редактор статей. Таковым я выбрал ckeditor. Прикрепил его, согласно правилам к действующей модели post. Провел миграцию. Редактор появился, но не работает. При попытке вставить фотографию выдает ошибку и требует прикрепить фото по ссылке.
а при попытке публикации статьи без фотографий выдает следующее:
IntegrityError at /admin/prosvet_logs/post/add/ NOT NULL constraint failed: prosvet_logs_post.publish Request Method: POST Request URL: 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
На данный момент у меня следующий код:
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'
},
}
python