I am modifying Gitstack, a 32bit Python2.7-based Git Web Application (available here) for my 64bit Python installation.
In the process, I also had to modify all the Django codes e.g. urlpatterns, etc.
While I managed to adapt it to my Apache/PHP environment, I ended up with this Django issue.
The error is as below while trying to access /gitstack
location
TypeError at /registration/login/
sequence item 0: expected string or Unicode, function found
Request Method: GET
Request URL: https://localhost/registration/login/?next=/gitstack/
Django Version: 1.11.6
Exception Type: TypeError
Exception Value:
sequence item 0: expected string or Unicode, function found'
I could not make any useful insight from the traceback below with my little head. The traceback just ends inside Django which seems very little helpful.
Environment:
Request Method: GET
Request URL: https://localhost/registration/login/?next=/gitstack/
Django Version: 1.11.6
Python Version: 2.7.13
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'gitstack')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\exception.py" in inner
41. response = get_response(request)
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _legacy_get_response
249. response = self._get_response(request)
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response
172. resolver_match = resolver.resolve(request.path_info)
File "C:\Python27\lib\site-packages\django\urls\resolvers.py" in resolve
366. sub_match = pattern.resolve(new_path)
File "C:\Python27\lib\site-packages\django\urls\resolvers.py" in resolve
201. return ResolverMatch(self.callback, args, kwargs, self.name)
File "C:\Python27\lib\site-packages\django\urls\resolvers.py" in __init__
55. self.view_name = ':'.join(self.namespaces + [view_path])
Exception Type: TypeError at /registration/login/
Exception Value: sequence item 0: expected string or Unicode, function found
Below is my modified app\urls.py
:
from django.conf.urls import url, include
from django.contrib.auth.views import login
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
urlpatterns = [
# Examples:
#url(r'^$', 'app.views.home', name='home'),
# url(r'^app/', include('app.foo.urls')),
# login
url(r'^registration/login/$', login, name=login),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
url(r'^gitstack/', include('gitstack.urls')),
# url(r'^rest/', include('rest.urls')),
]
Here is my modified gitstack/urls.py
from django.conf.urls import url, include
from .views import index, users, groups, repository_permission, add_repo_user_dialog, add_repo_group_dialog, group_user, add_group_user_dialog, settings_general, settings_authentication, settings_security, log_me_out
urlpatterns = [
# standard user interface
url(r'^$', index, name='index'),
url(r'^users/', users, name='users'),
url(r'^groups/', groups, name='groups'),
url(r'^repository/(?P<repo_name>.+)/permission/$', repository_permission, name='repository_permission'),
# add users dialog
url(r'^repository/(?P<repo_name>.+)/permission/adduser/$', add_repo_user_dialog, name= 'add_repo_user_dialog'),
url(r'^repository/(?P<repo_name>.+)/permission/addgroup/$', add_repo_group_dialog, name='add_repo_group_dialog'),
url(r'^group/(?P<group_name>.+)/user/$', group_user, name='group_user'),
# add users dialog (for the group)
url(r'^group/(?P<group_name>.+)/user/add/$', add_group_user_dialog, name='add_group_user_dialog'),
# settings tab
url(r'^settings/general/', settings_general, name='settings_general'),
url(r'^settings/authentication/', settings_authentication, name='settings_authentication'),
url(r'^settings/security/', settings_security, name='settings_security'),
url(r'^logout/', log_me_out, name='log_me_out'),
]
urlpatterns should be a Python list of
url()
instances. So you need to remove'gitstack.views',
fromurlpatterns
ingitstack/urls.py
UPD
Also you have problem with
login
pattern. Name should be string. Changeurl(r'^registration/login/$', login, name=login)
tourl(r'^registration/login/$', login, name='login')