Django Ошибка отсутствия обратного соответствия - ничего не работает
При рендеринге новой страницы действие html-формы на этой новой странице останавливает рендеринг страницы... хотя оно не имеет никакого отношения к рендерингу самой страницы (если я удалю эту одну строку HTML-кода, страница загружается нормально). Я работаю над решением этой проблемы уже более 3 дней, перепробовал сотни возможных решений, ничего не помогает. Пожалуйста, помогите
Это ошибка:
Повтор для 'editgallery' с аргументами '('rodneyadmin', '')' не найден. Проверен 1 шаблон(ы): ['editgallery/(?P[^/]+)/(?P<gallery_id>[0-9]+)\Z']
Это строка кода, выделенная как причина ошибки (действие формы):
<form action="{% url 'gallery_app:editgallery' user.username new_gallery.id %} " style="font-weight: bolder;" enctype='multipart/form-data' method='POST' class='gap-2'>
Views.py:
HTML:
<div class="row mb-3">
<div class="col-lg-12 col-sm-12 text-primary d-flex justify-content-center align-items-center">
<h1
class="homepagetitle mt-4 mb-5"
style="font-size: 2.4rem; color: rgb(231, 114, 208)"
>
Create new gallery
</h1>
</div>
</div>
<div class="row mb-3 d-flex justify-content-center">
<div class="col-lg-4 col-med-8 col-sm-8 text-primary" style="height: fit-content;">
<form action="{% url 'gallery_app:editgallery' user.username new_gallery.id %} " style="font-weight: bolder;" enctype='multipart/form-data' method='POST' class='gap-2'>
{% csrf_token %}
<div class="form-group mb-5">
<label style="margin-right: 20px;">Public Gallery</label>
{{form.public_gallery}}
</div>
<div class="form-group mb-5">
<label>Gallery Name </label>
{{form.gallery_name}}
</div>
<div class="form-group mb-5">
<label>Wallett Address</label>
<span class="hovertext" style="color: rgb(231, 114, 208); font-weight: normal;" data-hover="You will be adding NFT's from this wallet. Max wallet size: 50 NFT's">?</span>
{{form.wallett_address}}
</div>
<div class="form-group mb-5">
<label style="margin-right: 20px;">Category </label>
{{form.gallery_category}}
</div>
<button
type="submit"
class="btn btn-dark mt-4 mb-4"
style="
font-size: 1.1rem;
height: 50px;
width:fit-content;
"
>
Add NFT's   <i class="far fa-arrow-alt-circle-right"></i>
</button>
</form>
</div>
</div>
Urls.py:
app_name = 'gallery_app'
urlpatterns = [
path('newgallery/<str:username>', views.newgallery, name='newgallery'),
path('editgallery/<str:username>/<int:gallery_id>', views.editgallery, name='editgallery'),
path('galleryview/<str:username>/<int:gallery_id>', views.galleryview, name='galleryview'),
]
Похоже, что аргумент url new_gallery.id пуст при рендеринге html шаблона
Вам нужно передать галерею в качестве контекста в представление, содержащее форму редактирования. Я не вижу в представлениях, которые вы опубликовали, что у вас есть детальное представление, но я вижу url детального представления. Поэтому я предполагаю, что вы передаете форму редактирования в представление create? Это представление не возвращает контекст с new_gallery в качестве контекстной переменной. Я бы создал детальное представление для вашей галереи и передал форму редактирования, пользователя и галерею в качестве контекста в шаблон.
Reverse for 'editgallery' with arguments '('rodneyadmin', '')' not found.
Новый контекст
def galleryview(request, username, gallery_id):
# Logic
gallery = get_object_or_404(Gallery, pk=gallery_id)
context = {
'form': form,
'username': username,
'new_gallery': gallery,
}
# return an html response with context
Также, когда вы инстанцируете несвязанную форму, вы должны добавить скобки после нее.
form = NewGalleryForm()