1

i saw multiple same topics but non of them solved my problem . I just created a django project , build an app called News. when i try to load page i got this error :

dictionary update sequence element #0 has length 1; 2 is required

Here is first urls:

from django.contrib import admin
from django.urls import path
from django.conf.urls import url,include

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'',include('News.urls'))
]

And Here is News urls :

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'', views.LoadHome.as_view(), 'home_page')
]

And finally my view :

class LoadHome(generic.TemplateView):
    template_name = 'index.html'

Environment:

Request Method: GET Request URL: http://127.0.0.1:8000/

Django Version: 2.0.5 Python Version: 3.6.5 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'MyUser.apps.MyuserConfig', 'News.apps.NewsConfig'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']

Traceback:

File "A:\Python\techProject\venv\lib\site-packages\django\core\handlers\exception.py" in inner 35. response = get_response(request)

File "A:\Python\techProject\venv\lib\site-packages\django\core\handlers\base.py" in _get_response 113. resolver_match = resolver.resolve(request.path_info)

File "A:\Python\techProject\venv\lib\site-packages\django\urls\resolvers.py" in resolve 496. sub_match = pattern.resolve(new_path)

File "A:\Python\techProject\venv\lib\site-packages\django\urls\resolvers.py" in resolve 496. sub_match = pattern.resolve(new_path)

File "A:\Python\techProject\venv\lib\site-packages\django\urls\resolvers.py" in resolve 345. kwargs.update(self.default_args)

Exception Type: ValueError at / Exception Value: dictionary update sequence element #0 has length 1; 2 is required

Whats the problem ?

I think the reason is my INSTALLED_APPS in settings.py but i cant find any problem in it .

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'MyUser.apps.MyuserConfig',
    'News.apps.NewsConfig'
]
Mehdi bahmanpour
  • 574
  • 7
  • 21

2 Answers2

1
urlpatterns = [
    url(r'', views.LoadHome.as_view, 'home_page')
]

You are supposed to call the as_view method:

urlpatterns = [
    url(r'', views.LoadHome.as_view(), 'home_page')
                                #  ^^
]

See Django's class-based-views docs.

DeepSpace
  • 78,697
  • 11
  • 109
  • 154
0

In your urls.py you got and error:

Your urls.py:

urlpatterns=[
url(r'', views.LoadHome.as_view(), 'home_page')
]

And the correct is:

urlpatterns=[
url(r'', views.LoadHome.as_view(), name='home_page')
]
Micolho
  • 281
  • 2
  • 20