django 3.2 'NoReverseMatch at '
Форма добавления поста. Ругается на строчку в шаблоне: <form action="{% url 'add_brick' %}" method="POST">
Ошибка:
NoReverseMatch at /add_brick/
Reverse for 'add_brick' not found. 'add_brick' is not a valid view function or pattern name.
Контроллер:
def add_brick(request):
if request.method == 'POST':
form = BrickAddForm(request.POST, request.FILES)
if form.is_valid():
brick = form.save()
print(colored(brick, 'yellow'))
if brick.image:
image_flag = image_flag_foo(brick.image)
else:
image_flag = 'no_image'
context = {'brick':brick,
'image_flag':image_flag,}
return render(request, 'brick/add_brick.html', context)
else:
form = BrickAddForm()
return render(request, 'brick/add_brick.html', {'form':form})
urls.py приложения:
from django.urls import path
from .views import brick_page_foo, add_brick, new_brick_page_foo
urlpatterns = [
path('', brick_page_foo),
path('add_brick/', add_brick),
]
глобальный urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('brick.urls')),
]
Ответы (1 шт):
Автор решения: type49
→ Ссылка
Решил добавлением аттрибута name в urls.py приложения.
path('add_brick/', add_brick, name='add_brick'),