Реверс для 'django_summernote-upload_attachment' не найден. 'django_summernote-upload_attachment' не является действительным именем функции представления или шаблона
У меня постоянно возникает эта ошибка, когда я пытаюсь добавить сообщение. Она говорит,
"Reverse for 'django_summernote-upload_attachment' not found. 'django_summernote-upload_attachment' не является допустимым именем функции представления или шаблона."
Я знаю, что это не вопрос добавления "path('summernote/', include('django_summernote.urls')", потому что я уже сделал это.
models.py
from django.db import models
from django.contrib.auth.models import User
from django_summernote.widgets import SummernoteWidget, SummernoteInplaceWidget
CATEGORY = (
("Beginner", "Beginner"),
("Intermediate", "Intermediate"),
("Advanced", "Advanced"),
)
class Post(models.Model):
title = models.CharField(max_length=300, unique=True)
slug = models.SlugField(max_length=300, unique=True)
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='course_posts')
content = models.TextField()
# content = models.CharField(widget=SummernoteWidget())
category = models.CharField(max_length=25, choices=CATEGORY, default="Beginner")
created_at = models.DateField(auto_now_add=True)
class Meta:
ordering = ['-created_at']
def __str__(self):
return self.title
urls.py
from . import views
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
app_name = 'course_app'
urlpatterns = [
path('course/', views.PostList.as_view(), name='course'),
path('course/<slug:slug>/', views.PostDetail.as_view(), name='course_posts'),
path('summernote/', include('django_summernote.urls')),
path('editor/', include('django_summernote.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
views.py
from django.shortcuts import render
from django.views import generic
from .models import Post
class PostList(generic.ListView):
"""
Return all posts that are with status 1 (published) and order from the latest one.
"""
queryset = Post.objects.order_by('-created_at')
template_name = 'course.html'
class PostDetail(generic.DetailView):
model = Post
template_name = 'course_post.html'
def courses(request):
return render(request, 'course.html', {'navbar': 'courses'})
Я попробовал добавить jpg файл в качестве вложения, и это работает. Только с функцией "добавить сообщение" у меня возникла ошибка.
Помогите, пожалуйста!
Похоже, что шаблон с именем 'django_summernote-upload_attachment' отсутствует в вашей переменной urlpatterns. Посмотрев на urls.py файл из этого пакета (см. https://github.com/summernote/django-summernote/blob/main/django_summernote/urls.py), можно увидеть, что соответствующий шаблон добавляется только в том случае, если 'disable_attachment' ключевое значение для config равно False.
Проверьте свой файл settings.py и найдите переменную SUMMERNOTE_CONFIG. Там вы должны увидеть ключ 'disable_attachment'. Убедитесь, что его значение установлено в False (см. https://github.com/summernote/django-summernote#options). В противном случае urlpattern, к которому пытается обратиться Django, не будет зарегистрирован, и вы получите ошибку, которую вы опубликовали.
В качестве дополнительного замечания, будьте осторожны с файлом urls.py и включенными в него деталями, потому что вы включаете один и тот же набор деталей в две разные конечные точки:
path('summernote/', include('django_summernote.urls')), # using include('django_summernote.urls')
path('editor/', include('django_summernote.urls')) # using include('django_summernote.urls') once again
Это может вызвать проблемы с перенаправлением, если включенные детали имеют одинаковые имена. Удаление одного из этих двух шаблонов поможет, только учтите это в других файлах!
Вот как выглядят мои URL, и это работает хорошо, но раньше я получал ту же ошибку, и я исправил ее, добавив эти два пути summernote и editor
urlpatterns = [
path('', RedirectView.as_view(url='admin/login/', permanent=False), name='/'),
path('admin/', admin.site.urls),
path('summernote/', include('django_summernote.urls')),
path('editor/', include('django_summernote.urls')),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)