Using the URLconf defined in name, Django tried these URL patterns, in this order

I have a django project and in this project I have two apps: main and profiles.

So I added both mini apps to the settings.py file:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'main',
    'profiles',
]

and I can run the main application - if I go to:

http://127.0.0.1:8000/

It is running.

But If I go to:

http://127.0.0.1:8000/profiles

Then I get this error:


Page not found (404)
Request Method:     GET
Request URL:    http://127.0.0.1:8000/profiles

Using the URLconf defined in schoolfruitnvwa.urls, Django tried these URL patterns, in this order:

    admin/
    [name='index']

The current path, profiles, didn’t match any of these.

So my question is: how to tackle this?

Thank you

and my view.py file looks like this:

from django.shortcuts import render
from django.views import View

# Create your views here.


class CreateProfileView(View):
    def get(self, request):
        return render(request, "profiles/create_profile.html")

    def post(self, request):
        pass

and this is my urls.py file:

from django.urls import path

from . import views

urlpatterns = [
    path("", views.CreateProfileView.as_view())
]

Most likely you need to add an entry to the urls.py file in your main app:

from django.urls import include, path

urlpatterns = [
    # ...
    path('profiles/', include('profiles.urls')),
    # ...
]

This way, the urls.py of your profiles app will be included. If you then define an entry path('', views.myview) in this file, the overall url profiles/ will link to that view.

Details in the tutorial, which I highly recommend to work through from start to finish: https://docs.djangoproject.com/en/4.1/intro/tutorial01/#write-your-first-view

Back to Top