python - Why is this Django view erroring out before it displays a debug print statement? -
i have, development server in django project, django view 500 generated, apparently before view can run initial debug output. output development server, per intended ajax hit, is:
internal server error: /ajax/say traceback (most recent phone call last): file "/library/python/2.7/site-packages/django/core/handlers/base.py", line 114, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) file "/library/python/2.7/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view homecoming view_func(*args, **kwargs) file "/users/jonathan/unixytalk/unixytalk/views.py", line 71, in ajax_say request.session, room = room)): file "/library/python/2.7/site-packages/django/db/models/manager.py", line 163, in filter homecoming self.get_queryset().filter(*args, **kwargs) file "/library/python/2.7/site-packages/django/db/models/query.py", line 590, in filter homecoming self._filter_or_exclude(false, *args, **kwargs) file "/library/python/2.7/site-packages/django/db/models/query.py", line 608, in _filter_or_exclude clone.query.add_q(q(*args, **kwargs)) file "/library/python/2.7/site-packages/django/db/models/sql/query.py", line 1198, in add_q clause = self._add_q(where_part, used_aliases) file "/library/python/2.7/site-packages/django/db/models/sql/query.py", line 1234, in _add_q current_negated=current_negated) file "/library/python/2.7/site-packages/django/db/models/sql/query.py", line 1125, in build_filter clause.add(constraint, and) file "/library/python/2.7/site-packages/django/utils/tree.py", line 104, in add together info = self._prepare_data(data) file "/library/python/2.7/site-packages/django/db/models/sql/where.py", line 79, in _prepare_data value = obj.prepare(lookup_type, value) file "/library/python/2.7/site-packages/django/db/models/sql/where.py", line 352, in prepare homecoming self.field.get_prep_lookup(lookup_type, value) file "/library/python/2.7/site-packages/django/db/models/fields/__init__.py", line 1079, in get_prep_lookup homecoming super(integerfield, self).get_prep_lookup(lookup_type, value) file "/library/python/2.7/site-packages/django/db/models/fields/__init__.py", line 369, in get_prep_lookup homecoming self.get_prep_value(value) file "/library/python/2.7/site-packages/django/db/models/fields/__init__.py", line 1073, in get_prep_value homecoming int(value) typeerror: int() argument must string or number, not 'sessionstore' [18/jun/2014 11:34:28] "post /ajax/say http/1.1" 500 111136
the urlpatterns has:
url(r'^ajax/say/?$', 'unixytalk.views.ajax_say'),
the source function is:
#@ajax_login_required @csrf_exempt def ajax_say(request): print 'reached here!' if not request.session.get('identifier', none): session = session() session.save() request.session['identifier'] = session.id #print repr(request) #conversation = request.post['conversation'] #if not request.user in conversation.users: #return try: print repr(get_post(request)) text = get_post(request)['params']['text'] print 'door 1' print repr(text) except keyerror: print 'door 2' homecoming httpresponse(json.dumps([]), mimetype='application/json') except typeerror: print 'door 3' homecoming httpresponse(json.dumps([]), mimetype='application/json') if get_post(request)['params'].get('time', none) != none: room = room.objects.filter(identifier = get_post(request)['params']['room'])[0] if len(individualcontribution.objects.filter(session = request.session, room = room)): instance = individualcontribution.objects.filter(session = request.session, room = room)[0] else: instance = individualcontribution(room = room, session = request.session['identifier']) instance.text = text instance.timestamp = get_post(request)['params']['timestamp'] instance.save() homecoming httpresponse(json.dumps([]), mimetype='application/json')
this function work in progress, , intended farther refinement.
the development server's console output shows 1 or 2 hits without server error, before displaying error output above. (the page references /ajax/say supposed give brain dump every second, , happens initial bit out putout without error, 500 every sec after that.) non-error output is:
inner sanctum ~/unixytalk $ python manage.py runserver validating models... 0 errors found june 18, 2014 - 11:34:26 django version 1.6.2, using settings 'unixytalk.settings' starting development server @ http://127.0.0.1:8000/ quit server control-c. reached here! {u'params': {u'room': u'ee8696bab4df6a68e0f3', u'time': 1403109268206}} door 2 reached here! {"monologues": {}, "sessions": []} {"monologues": {}, "sessions": []} /library/python/2.7/site-packages/django/http/response.py:330: deprecationwarning: using mimetype keyword argument deprecated, utilize content_type instead super(httpresponse, self).__init__(*args, **kwargs) [18/jun/2014 11:34:28] "post /ajax/listen http/1.1" 200 34 [18/jun/2014 11:34:28] "post /ajax/listen http/1.1" 200 34 {u'params': {u'text': u'aaaa', u'room': u'ee8696bab4df6a68e0f3', u'time': 1403109268212}} door 1 u'aaaa' [18/jun/2014 11:34:28] "post /ajax/say http/1.1" 200 2
i'm guessing i'm trying create session object string or non-integer id, or that, i.e. first run creates pollution affects sec , subsequent goes. "session" not django's session, empty (django model) class used create unique integer key.
--update--
in response dhana, models defined project are:
from django.contrib.auth.models import user django.db import models unixytalk import settings class room(models.model): identifier = models.charfield(max_length = settings.max_hash_length, null = true, blank = true) class session(models.model): pass class individualcontribution(models.model): room = models.foreignkey(room) session = models.integerfield() text = models.textfield() timestamp = models.floatfield() username = models.textfield()
i think error here
instance = individualcontribution.objects.filter(session = request.session, room = room)[0]
when querying data,it gives error
typeerror: int() argument must string or number, not 'sessionstore'
it asking string or number providing sessionstore.
if provide individualcontribution
model details give more details.
python ajax django django-views django-sessions
No comments:
Post a Comment