Django Страница не найдена (404) - Текущий путь, Не соответствует ни одному из этих путей
Я пытаюсь добавить клинику из профиля пользователя, однако, я получаю 404 страницу не найдена, и я заметил, что одна цитата добавляется к URL:
http://127.0.0.1:8000/profile/'/clinic/add_clinic/
Любая помощь будет принята с благодарностью.
Ниже приведены URL-адреса моих проектов:
urlpatterns = [
# django admin
path('admin/', admin.site.urls),
# User management
path('accounts/', include('allauth.urls')),
# local apps
path('', include('pages.urls')), # new
path('clients/', include('clients.urls')), # new
path('behaviors/', include('behaviors.urls')),
path('clientsessions/', include('clientsessions.urls')),
path('profile/', include('users.urls')),
path('clinic/', include('clinic.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Вот URL-адреса из приложения пользователей
urlpatterns = [
path('', views.profile, name='profile'),
]
Вот вид профиля
@login_required
def profile(request):
if request.method == 'POST':
user_form = UpdateUserForm(request.POST, instance=request.user)
profile_form = UpdateProfileForm(request.POST, request.FILES, instance=request.user.profile)
if user_form.is_valid() and profile_form.is_valid():
user_form.save()
profile_form.save()
messages.success(request, 'Your profile is updated successfully')
return redirect(to='users-profile')
else:
user_form = UpdateUserForm(instance=request.user)
profile_form = UpdateProfileForm(instance=request.user.profile)
return render(request, 'users/profile.html', {'user_form': user_form, 'profile_form': profile_form})
Вот URLs rom the clinic app
urlpatterns = [
path('clinic/', views.clinic, name='clinic'),
path('add_clinic/', views.add_clinic, name='add_clinic'),
]
А вот представление add_clinic
@login_required
@allower_users(allowed_roles=['admin'])
def add_clinic(request):
if request.method == 'POST':
name = request.POST.get('name')
if name:
name = Clinic.objects.create(name=name, created_by=request.user)
clinic.members.add(request.user)
clinic.save()
userprofile = request.user.profile
userprofile.active_clinic_id = clinic.id
userprofile.save()
return redirect(to='users-profile')
return render(request, 'clinic/add_clinic.html')
Похоже, что ваша ссылка написана неправильно, перепишите это:
<a href="'{% url 'clinic:add_clinic' %}">Create Clinic</a>
as:
<a href="'{% url 'add_clinic' %}">Create Clinic</a>
Это должно сделать это.