Change this:

def run_DHM(request):
    xx = {'ok':'TRUE'}
    #return HttpResponse("OK")
    return xx

To this:

def run_DHM(request):
    return HttpResponse("{'ok': true}")

You were getting that error because views should always return
HttpResponse objects.


Brett


On 12/16/11 5:18 PM, "yun li" <yli0...@gmail.com> wrote:

>thanks for Denis' suggestion, I can see errors now. looks like there
>is an AttributeError. here is the error information:
>
>###################################
>AttributeError at /run_DHM
>
>'dict' object has no attribute 'status_code'
>
>Request Method:        GET
>Request URL:   http://127.0.0.1:8000/run_DHM
>Django Version:        1.3.1
>Exception Type:        AttributeError
>Exception Value:
>
>'dict' object has no attribute 'status_code'
>###################################
>
>and here are all current codes.
>--------------------------------------------------------
>urls.py-------------------------------------------------------------------
>--
>import mytest.views as views
>from django.shortcuts import render_to_response
>from django.conf.urls.defaults import patterns, include, url
>
># Uncomment the next two lines to enable the admin:
># from django.contrib import admin
># admin.autodiscover()
>
>urlpatterns = patterns('',
>       (r'^test$',views.test_form),
>       (r'^please_wait', views.please_wait),
>       url(r'^run_DHM$', views.run_DHM, name="run_DHM") ,
>       url(r'^displayDHM', views.display_DHM, name="displayDHM")
>)
>
>
>---------------------------------------------------------------------
>views.py------------------------------------------------------------------
>---
>from django.shortcuts import render_to_response
>from django.core.context_processors import csrf
>from django.http import HttpResponse
>
>def test_form(request):
>       c = {}
>       c.update(csrf(request))
>       return render_to_response('test.html',c)
>
>def please_wait(request):
>       return render_to_response('please_wait.html')
>
>def run_DHM(request):
>       xx = {'ok':'TRUE'}
>       #return HttpResponse("OK")
>       return xx
>
>def display_DHM(request):
>       return render_to_response('display_DHM.html')
>
>
>---------------------------------------------------------------------
>please_wait.html----------------------------------------------------------
>-----------
><!DOCTYPE html>
><html>
>    <head>
>        <title>Please wait.</title>
>        <meta charset="utf-8">
>        <script src="http://code.jquery.com/jquery-1.7.1.min.js";></
>script>
>        <script>
>            $(function() {
>                $.getJSON('{% url run_DHM %}', function(data) {
>                    if (data.ok) {
>                        window.location.href = '{% url displayDHM %}';
>                    } else {
>                        alert(data);
>                    }
>                });
>            });
>        </script>
>    </head>
>    <body>
>        <p>Please wait.</p>
>    </body>
></html>
>
>
>---------------------------------------------------------------------
>test.html-----------------------------------------------------------------
>----
>
><html>
><body>
><form method="POST" action="please_wait">{% csrf_token %}
>  <p>Test:</p>
>  <div id="address"></div>
>  <p>Type your value in here:</p>
>  <p><textarea name="order" rows="6" cols="50" id="order"></textarea></
>p>
>  <p><input type="submit" value="submit" id="submit" /></p>
> </form>
></body>
></html>
>
>
>---------------------------------------------------------------------
>display_DHM.html----------------------------------------------------------
>-----------
><HTML>
><BODY>END FINALLY!</BODY>
></HTML>
>
>#######################settings.py
># Django settings for mytest project.
>
>DEBUG = True
>TEMPLATE_DEBUG = DEBUG
>
>ADMINS = (
>    # ('Your Name', 'your_em...@example.com'),
>)
>
>MANAGERS = ADMINS
>
>DATABASES = {
>    'default': {
>        'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2',
>'postgresql', 'mysql', 'sqlite3' or 'oracle'.
>        'NAME': '',                      # Or path to database file if
>using sqlite3.
>        'USER': '',                      # Not used with sqlite3.
>        'PASSWORD': '',                  # Not used with sqlite3.
>        'HOST': '',                      # Set to empty string for
>localhost. Not used with sqlite3.
>        'PORT': '',                      # Set to empty string for
>default. Not used with sqlite3.
>    }
>}
>
># Local time zone for this installation. Choices can be found here:
># http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
># although not all choices may be available on all operating systems.
># On Unix systems, a value of None will cause Django to use the same
># timezone as the operating system.
># If running in a Windows environment this must be set to the same as
>your
># system time zone.
>TIME_ZONE = 'America/Chicago'
>
># Language code for this installation. All choices can be found here:
># http://www.i18nguy.com/unicode/language-identifiers.html
>LANGUAGE_CODE = 'en-us'
>
>SITE_ID = 1
>
># If you set this to False, Django will make some optimizations so as
>not
># to load the internationalization machinery.
>USE_I18N = True
>
># If you set this to False, Django will not format dates, numbers and
># calendars according to the current locale
>USE_L10N = True
>
># Absolute filesystem path to the directory that will hold user-
>uploaded files.
># Example: "/home/media/media.lawrence.com/media/"
>MEDIA_ROOT = ''
>
># URL that handles the media served from MEDIA_ROOT. Make sure to use
>a
># trailing slash.
># Examples: "http://media.lawrence.com/media/";, "http://example.com/
>media/"
>MEDIA_URL = ''
>
># Absolute path to the directory static files should be collected to.
># Don't put anything in this directory yourself; store your static
>files
># in apps' "static/" subdirectories and in STATICFILES_DIRS.
># Example: "/home/media/media.lawrence.com/static/"
>STATIC_ROOT = ''
>
># URL prefix for static files.
># Example: "http://media.lawrence.com/static/";
>STATIC_URL = '/static/'
>
># URL prefix for admin static files -- CSS, JavaScript and images.
># Make sure to use a trailing slash.
># Examples: "http://foo.com/static/admin/";, "/static/admin/".
>ADMIN_MEDIA_PREFIX = '/static/admin/'
>
># Additional locations of static files
>STATICFILES_DIRS = (
>    # Put strings here, like "/home/html/static" or "C:/www/django/
>static".
>    # Always use forward slashes, even on Windows.
>    # Don't forget to use absolute paths, not relative paths.
>)
>
># List of finder classes that know how to find static files in
># various locations.
>STATICFILES_FINDERS = (
>    'django.contrib.staticfiles.finders.FileSystemFinder',
>    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
>#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
>)
>
># Make this unique, and don't share it with anybody.
>SECRET_KEY = 'mpizo)=nw5%bzy3@pp_)^%o1&+)_=$m^ai0wqtse&=e06b5=0z'
>
># List of callables that know how to import templates from various
>sources.
>TEMPLATE_LOADERS = (
>    'django.template.loaders.filesystem.Loader',
>    'django.template.loaders.app_directories.Loader',
>#     'django.template.loaders.eggs.Loader',
>)
>
>MIDDLEWARE_CLASSES = (
>    'django.middleware.common.CommonMiddleware',
>    'django.contrib.sessions.middleware.SessionMiddleware',
>    'django.middleware.csrf.CsrfViewMiddleware',
>    'django.contrib.auth.middleware.AuthenticationMiddleware',
>    'django.contrib.messages.middleware.MessageMiddleware',
>)
>
>ROOT_URLCONF = 'mytest.urls'
>
>TEMPLATE_DIRS = (
>       'C:/Users/yun/tmp/mytest/templates'
>    # Put strings here, like "/home/html/django_templates" or "C:/www/
>django/templates".
>    # Always use forward slashes, even on Windows.
>    # Don't forget to use absolute paths, not relative paths.
>)
>
>INSTALLED_APPS = (
>    'django.contrib.auth',
>    'django.contrib.contenttypes',
>    'django.contrib.sessions',
>    'django.contrib.sites',
>    'django.contrib.messages',
>    'django.contrib.staticfiles',
>    # Uncomment the next line to enable the admin:
>    # 'django.contrib.admin',
>    # Uncomment the next line to enable admin documentation:
>    # 'django.contrib.admindocs',
>)
>
># A sample logging configuration. The only tangible logging
># performed by this configuration is to send an email to
># the site admins on every HTTP 500 error.
># See http://docs.djangoproject.com/en/dev/topics/logging for
># more details on how to customize your logging configuration.
>LOGGING = {
>    'version': 1,
>    'disable_existing_loggers': False,
>    'handlers': {
>        'mail_admins': {
>            'level': 'ERROR',
>            'class': 'django.utils.log.AdminEmailHandler'
>        }
>    },
>    'loggers': {
>        'django.request': {
>            'handlers': ['mail_admins'],
>            'level': 'ERROR',
>            'propagate': True,
>        },
>    }
>}
>
>-- 
>You received this message because you are subscribed to the Google Groups
>"Django users" group.
>To post to this group, send email to django-users@googlegroups.com.
>To unsubscribe from this group, send email to
>django-users+unsubscr...@googlegroups.com.
>For more options, visit this group at
>http://groups.google.com/group/django-users?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to