cjlee112 / socraticqs2

courselets.org web service implementation
Apache License 2.0
6 stars 10 forks source link

Fix LTI user registration BUG #226

Closed cmltaWt0 closed 7 years ago

cmltaWt0 commented 7 years ago
Environment:
Request Method: POST
Request URL: https://staging.courselets.org/lti/ct/courses/1/units/1/
Django Version: 1.8
Python Version: 2.7.6
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'crispy_forms',
 'ct',
 'fsm',
 'lti',
 'api',
 'social.apps.django_app.default',
 'psa',
 'chat',
 'rest_framework',
 'accounts',
 'waffle',
 'storages')
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',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'waffle.middleware.WaffleMiddleware')
Traceback:
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
  58.         return view_func(*args, **kwargs)
File "/home/wwwapps/socraticqs2/mysite/lti/views.py" in lti_init
  115.     return lti_redirect(request, lti_consumer, course_id, unit_id)
File "/home/wwwapps/socraticqs2/mysite/lti/views.py" in lti_redirect
  152.         user.create_links()
File "/home/wwwapps/socraticqs2/mysite/lti/models.py" in create_links
  120.                         username=email, defaults=defaults
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  127.                 return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/query.py" in get_or_create
  407.             return self._create_object_from_params(lookup, params)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/query.py" in _create_object_from_params
  439.                 obj = self.create(**params)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/query.py" in create
  348.         obj.save(force_insert=True, using=self.db)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/base.py" in save
  710.                        force_update=force_update, update_fields=update_fields)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/base.py" in save_base
  738.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/base.py" in _save_table
  822.             result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/base.py" in _do_insert
  861.                                using=using, raw=raw)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  127.                 return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/query.py" in _insert
  920.         return query.get_compiler(using=using).execute_sql(return_id)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
  963.                 cursor.execute(sql, params)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/utils.py" in __exit__
  97.                 six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/wwwapps/_ve_socraticqs2/local/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)
Exception Type: DataError at /lti/ct/courses/1/units/1/
Exception Value: value too long for type character varying(30)
cmltaWt0 commented 7 years ago

screenshot_20

cmltaWt0 commented 7 years ago

In Django 1.8. User.username field's max_length==30. So we need to move from using emails as usernames and think how to get the same aim w/o using email.