| Request Method: | GET |
|---|---|
| Request URL: | http://duncan-cragg.org/blog/tag/rest/ |
| Exception Type: | TypeError |
| Exception Value: | Cannot resolve keyword 'blogpost' into field |
| Exception Location: | /usr/lib/python2.3/site-packages/django/db/models/query.py in lookup_inner, line 836 |
In template /home/duncan/the-u-web/net/duncan-cragg.org/dbc/blog/templates/keywordlist.html, error at line 2
| 1 | {% load filters %} |
|---|---|
| 2 | {% if post.keywords.all %} |
| 3 | <div class="taglist"> |
| 4 | {% for keyword in post.keywords.all %} |
| 5 | <a rel="tag" href="{{ keyword.get_absolute_url }}/" style="color: {{ keyword.colour }}">{{ keyword.name|nbspify }}</a> <a rel="tag" href="http://technorati.com/tag/{{ keyword.name }}" class="technorati" >■</a> <a rel="tag" href="http://del.icio.us/tag/{{ keyword.name }}" class="delicious" >■</a> |
| 6 | {% endfor %} |
| 7 | </div> |
| 8 | {% endif %} |
| 9 | |
| 10 |
/usr/lib/python2.3/site-packages/django/template/__init__.py in render_node
| Variable | Value |
|---|---|
| context | [{'forloop': {'parentloop': {}, 'last': False, 'counter': 1, 'revcounter0': 16, 'revcounter': 17, 'counter0': 0, 'first': True}, 'post': BlogPost(content-types-and-uris-rest-dialogues) Content-Types and URIs | The REST Dialogues}, {'block': <Block Node: content. Contents: [<Text Node: '
<table class="histo'>, <Variable Node: title>, <Text Node: '</td>
<td cla'>, <Variable Node: feedname>, <Text Node: '" ><img class="float-righ'>, <Variable Node: title>, <Text Node: '" title="Atom Feed for '>, <Variable Node: title>, <Text Node: '" /></a></td>
</t'>, <For Node: for post in posts, tail_len: 3>, <Text Node: '
</td></tr>
'>]>}, {'feedname': 'rest/', 'title': "Posts tagged 'rest'", 'keywords': [semanticweb, copyright, cyberspace, architecture, django, xtech, declarative, web2.0, yaml, strest, socialsoftware, identity, publishsubscribe, p2p, app, multimedia, microformats, microsummaries, digital-rights, ajax, dialogue, event-driven, rest, atom, scalability, json, openid, rajmo, redux, ruby, google, microweb], 'blogposts': [BlogPost(content-types-and-uris-rest-dialogues) Content-Types and URIs | The REST Dialogues, BlogPost(google-micro-conference) Google Micro Conference, BlogPost(how-ruby-can-enable-web-20-platform) How Ruby can enable the Web 2.0 Platform, BlogPost(distributed-observer-pattern-rest-dialogues) The Distributed Observer Pattern | The REST Dialogues, BlogPost(inter-enterprise-rest-integration-rest-dialogues) Inter-Enterprise REST Integration | The REST Dialogues, BlogPost(lighter-wins-2007) Lighter-than Wins in 2007, BlogPost(business-functions-rest-dialogues) Business Functions | The REST Dialogues, BlogPost(ebays-architecture-looks-good) eBay's Working Architecture, BlogPost(setting-data-rest-dialogues) Setting Data | The REST Dialogues, BlogPost(getting-data-rest-dialogues) Getting Data | The REST Dialogues, BlogPost(right-way-to-do-ajax-is-declaratively) The Right Way to do Ajax is Declaratively, BlogPost(web-20-and-our-digital-rights) Web 2.0 and our Digital Rights, BlogPost(2006-what-now-how-awards-rest-protocols) The 2006 'What Now How' Awards for REST Protocols, BlogPost(microformats-challenge-web-feeds-and-web-apis) Microformats Challenge Web Feeds and Web APIs!, BlogPost(strest-service-trampled-rest-will-break-web-20) STREST (Service-Trampled REST) Will Break Web 2.0], 'settings': <django.conf.LazySettings object at 0x43e4d0ec>, 'posts': [BlogPost(content-types-and-uris-rest-dialogues) Content-Types and URIs | The REST Dialogues, BlogPost(google-micro-conference) Google Micro Conference, BlogPost(how-ruby-can-enable-web-20-platform) How Ruby can enable the Web 2.0 Platform, BlogPost(distributed-observer-pattern-rest-dialogues) The Distributed Observer Pattern | The REST Dialogues, BlogPost(inter-enterprise-rest-integration-rest-dialogues) Inter-Enterprise REST Integration | The REST Dialogues, BlogPost(lighter-wins-2007) Lighter-than Wins in 2007, BlogPost(business-functions-rest-dialogues) Business Functions | The REST Dialogues, BlogPost(setting-data-rest-dialogues) Setting Data | The REST Dialogues, BlogPost(getting-data-rest-dialogues) Getting Data | The REST Dialogues, BlogPost(right-way-to-do-ajax-is-declaratively) The Right Way to do Ajax is Declaratively, BlogPost(web-20-and-our-digital-rights) Web 2.0 and our Digital Rights, BlogPost(2006-what-now-how-awards-rest-protocols) The 2006 'What Now How' Awards for REST Protocols, BlogPost(microformats-challenge-web-feeds-and-web-apis) Microformats Challenge Web Feeds and Web APIs!, BlogPost(strest-service-trampled-rest-will-break-web-20) STREST (Service-Trampled REST) Will Break Web 2.0, BlogPost(excuse-me-did-you-say-web-services) Excuse me - did you say 'Web' Services?, BlogPost(imperative-declarative-inversion-open-data-ok) The "Imperative to Declarative Inversion": Open Data is OK!, BlogPost(welcome-to-what-not-how) Welcome to 'What Not How']}] |
| e | <exceptions.TypeError instance at 0x444984ac> |
| exc_info | <built-in function exc_info> |
| node | <If node> |
| self | [<django.template.defaulttags.LoadNode object at 0x444c7d4c>, <Text Node: '
'>, <If node>, <Text Node: '
'>] |
| wrapped | <django.template.TemplateSyntaxError instance at 0x444b224c> |
/usr/lib/python2.3/site-packages/django/template/defaulttags.py in render
| Variable | Value |
|---|---|
| bool_expr | <django.template.FilterExpression object at 0x444c766c> |
| context | [{'forloop': {'parentloop': {}, 'last': False, 'counter': 1, 'revcounter0': 16, 'revcounter': 17, 'counter0': 0, 'first': True}, 'post': BlogPost(content-types-and-uris-rest-dialogues) Content-Types and URIs | The REST Dialogues}, {'block': <Block Node: content. Contents: [<Text Node: '
<table class="histo'>, <Variable Node: title>, <Text Node: '</td>
<td cla'>, <Variable Node: feedname>, <Text Node: '" ><img class="float-righ'>, <Variable Node: title>, <Text Node: '" title="Atom Feed for '>, <Variable Node: title>, <Text Node: '" /></a></td>
</t'>, <For Node: for post in posts, tail_len: 3>, <Text Node: '
</td></tr>
'>]>}, {'feedname': 'rest/', 'title': "Posts tagged 'rest'", 'keywords': [semanticweb, copyright, cyberspace, architecture, django, xtech, declarative, web2.0, yaml, strest, socialsoftware, identity, publishsubscribe, p2p, app, multimedia, microformats, microsummaries, digital-rights, ajax, dialogue, event-driven, rest, atom, scalability, json, openid, rajmo, redux, ruby, google, microweb], 'blogposts': [BlogPost(content-types-and-uris-rest-dialogues) Content-Types and URIs | The REST Dialogues, BlogPost(google-micro-conference) Google Micro Conference, BlogPost(how-ruby-can-enable-web-20-platform) How Ruby can enable the Web 2.0 Platform, BlogPost(distributed-observer-pattern-rest-dialogues) The Distributed Observer Pattern | The REST Dialogues, BlogPost(inter-enterprise-rest-integration-rest-dialogues) Inter-Enterprise REST Integration | The REST Dialogues, BlogPost(lighter-wins-2007) Lighter-than Wins in 2007, BlogPost(business-functions-rest-dialogues) Business Functions | The REST Dialogues, BlogPost(ebays-architecture-looks-good) eBay's Working Architecture, BlogPost(setting-data-rest-dialogues) Setting Data | The REST Dialogues, BlogPost(getting-data-rest-dialogues) Getting Data | The REST Dialogues, BlogPost(right-way-to-do-ajax-is-declaratively) The Right Way to do Ajax is Declaratively, BlogPost(web-20-and-our-digital-rights) Web 2.0 and our Digital Rights, BlogPost(2006-what-now-how-awards-rest-protocols) The 2006 'What Now How' Awards for REST Protocols, BlogPost(microformats-challenge-web-feeds-and-web-apis) Microformats Challenge Web Feeds and Web APIs!, BlogPost(strest-service-trampled-rest-will-break-web-20) STREST (Service-Trampled REST) Will Break Web 2.0], 'settings': <django.conf.LazySettings object at 0x43e4d0ec>, 'posts': [BlogPost(content-types-and-uris-rest-dialogues) Content-Types and URIs | The REST Dialogues, BlogPost(google-micro-conference) Google Micro Conference, BlogPost(how-ruby-can-enable-web-20-platform) How Ruby can enable the Web 2.0 Platform, BlogPost(distributed-observer-pattern-rest-dialogues) The Distributed Observer Pattern | The REST Dialogues, BlogPost(inter-enterprise-rest-integration-rest-dialogues) Inter-Enterprise REST Integration | The REST Dialogues, BlogPost(lighter-wins-2007) Lighter-than Wins in 2007, BlogPost(business-functions-rest-dialogues) Business Functions | The REST Dialogues, BlogPost(setting-data-rest-dialogues) Setting Data | The REST Dialogues, BlogPost(getting-data-rest-dialogues) Getting Data | The REST Dialogues, BlogPost(right-way-to-do-ajax-is-declaratively) The Right Way to do Ajax is Declaratively, BlogPost(web-20-and-our-digital-rights) Web 2.0 and our Digital Rights, BlogPost(2006-what-now-how-awards-rest-protocols) The 2006 'What Now How' Awards for REST Protocols, BlogPost(microformats-challenge-web-feeds-and-web-apis) Microformats Challenge Web Feeds and Web APIs!, BlogPost(strest-service-trampled-rest-will-break-web-20) STREST (Service-Trampled REST) Will Break Web 2.0, BlogPost(excuse-me-did-you-say-web-services) Excuse me - did you say 'Web' Services?, BlogPost(imperative-declarative-inversion-open-data-ok) The "Imperative to Declarative Inversion": Open Data is OK!, BlogPost(welcome-to-what-not-how) Welcome to 'What Not How']}] |
| ifnot | False |
| self | <If node> |
| value | Error in formatting:Cannot resolve keyword 'blogpost' into field |
/usr/lib/python2.3/site-packages/django/db/models/query.py in __len__
| Variable | Value |
|---|---|
| self | Error in formatting:Cannot resolve keyword 'blogpost' into field |
/usr/lib/python2.3/site-packages/django/db/models/query.py in _get_data
| Variable | Value |
|---|---|
| self | Error in formatting:Cannot resolve keyword 'blogpost' into field |
/usr/lib/python2.3/site-packages/django/db/models/query.py in iterator
| Variable | Value |
|---|---|
| cursor | <django.db.backends.util.CursorDebugWrapper object at 0x44490a8c> |
| extra_select | [] |
| self | Error in formatting:Cannot resolve keyword 'blogpost' into field |
/usr/lib/python2.3/site-packages/django/db/models/query.py in _get_sql_clause
| Variable | Value |
|---|---|
| f | <django.db.models.fields.CharField object at 0x4420b40c> |
| joins | {} |
| opts | <Options for Keyword> |
| params | [] |
| select | ['"blog_keyword"."id"', '"blog_keyword"."name"', '"blog_keyword"."colour"'] |
| self | Error in formatting:Cannot resolve keyword 'blogpost' into field |
| tables | [] |
| where | [] |
/usr/lib/python2.3/site-packages/django/db/models/query.py in get_sql
| Variable | Value |
|---|---|
| joins | {} |
| joins2 | {} |
| opts | <Options for Keyword> |
| params | [] |
| params2 | [] |
| self | <django.db.models.query.QAnd object at 0x44498e8c> |
| val | <django.db.models.query.Q object at 0x4449894c> |
| where | [] |
| where2 | [] |
/usr/lib/python2.3/site-packages/django/db/models/query.py in get_sql
| Variable | Value |
|---|---|
| opts | <Options for Keyword> |
| self | <django.db.models.query.Q object at 0x4449894c> |
/usr/lib/python2.3/site-packages/django/db/models/query.py in parse_lookup
| Variable | Value |
|---|---|
| joins | {} |
| kwarg | 'blogpost__pk' |
| kwarg_items | [('blogpost__pk', 38)] |
| lookup_type | 'exact' |
| opts | <Options for Keyword> |
| params | [] |
| path | [None] |
| value | 38 |
| where | [] |
/usr/lib/python2.3/site-packages/django/db/models/query.py in lookup_inner
| Variable | Value |
|---|---|
| column | None |
| current_column | None |
| current_opts | <Options for Keyword> |
| current_table | 'blog_keyword' |
| field | None |
| intermediate_table | None |
| join_required | False |
| joins | {} |
| lookup_type | 'exact' |
| name | 'blogpost' |
| opts | <Options for Keyword> |
| params | [] |
| path | [None] |
| qn | <function quote_name at 0x43ed48b4> |
| table | 'blog_keyword' |
| value | 38 |
| where | [] |
Traceback (most recent call last):
|
No GET data
No POST data
No cookie data
| Variable | Value |
|---|---|
| AUTH_TYPE | None |
| CONTENT_LENGTH | 0L |
| CONTENT_TYPE | None |
| GATEWAY_INTERFACE | 'CGI/1.1' |
| HTTP_ACCEPT | 'Accept: application/xhtml+xml,text/html;q=0.9,text/plain;' |
| HTTP_ACCEPT_CHARSET | 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' |
| HTTP_ACCEPT_ENCODING | 'gzip' |
| HTTP_ACCEPT_LANGUAGE | 'en-us,en;q=0.5' |
| HTTP_CACHE_CONTROL | 'no-cache' |
| HTTP_CONNECTION | 'close' |
| HTTP_HOST | 'duncan-cragg.org' |
| HTTP_PRAGMA | 'no-cache' |
| HTTP_USER_AGENT | 'CCBot/1.0 (+http://www.commoncrawl.org/bot.html)' |
| PATH_INFO | '/tag/rest/' |
| PATH_TRANSLATED | None |
| QUERY_STRING | None |
| REMOTE_ADDR | '38.103.63.16' |
| REMOTE_HOST | None |
| REMOTE_IDENT | None |
| REMOTE_USER | None |
| REQUEST_METHOD | 'GET' |
| SCRIPT_NAME | None |
| SERVER_NAME | 'duncan-cragg.org' |
| SERVER_PORT | 0 |
| SERVER_PROTOCOL | 'HTTP/1.1' |
| SERVER_SOFTWARE | 'mod_python' |
dbc.settings| Setting | Value |
|---|---|
| ABSOLUTE_URL_OVERRIDES | {} |
| ADMINS | (('Duncan Cragg', 'blog-admin@cilux.org'),) |
| ADMIN_FOR | () |
| ADMIN_MEDIA_PREFIX | '/media/' |
| ALLOWED_INCLUDE_ROOTS | () |
| APPEND_SLASH | True |
| AUTHENTICATION_BACKENDS | ('django.contrib.auth.backends.ModelBackend',) |
| BANNED_IPS | () |
| BLOG_AUTHOR | 'Duncan Cragg' |
| BLOG_DOMAIN | 'http://duncan-cragg.org' |
| BLOG_SUBTITLE | 'Declarative Architectures' |
| BLOG_TITLE | 'What Not How' |
| BLOG_URL | 'http://duncan-cragg.org/blog/' |
| CACHE_BACKEND | 'simple://' |
| CACHE_MIDDLEWARE_KEY_PREFIX | '' |
| COMMENTS_ALLOW_PROFANITIES | False |
| COMMENTS_BANNED_USERS_GROUP | None |
| COMMENTS_FIRST_FEW | 0 |
| COMMENTS_MODERATORS_GROUP | None |
| COMMENTS_SKETCHY_USERS_GROUP | None |
| DATABASE_ENGINE | 'postgresql' |
| DATABASE_HOST | 'localhost' |
| DATABASE_NAME | 'dbc' |
| DATABASE_OPTIONS | {} |
| DATABASE_PASSWORD | '********************' |
| DATABASE_PORT | '5432' |
| DATABASE_USER | 'postgres' |
| DATETIME_FORMAT | 'N j, Y, P' |
| DATE_FORMAT | 'N j, Y' |
| DEBUG | True |
| DEFAULT_CHARSET | 'utf-8' |
| DEFAULT_CONTENT_TYPE | 'text/html' |
| DEFAULT_FROM_EMAIL | 'webmaster@localhost' |
| DISALLOWED_USER_AGENTS | () |
| EMAIL_HOST | 'localhost' |
| EMAIL_HOST_PASSWORD | '********************' |
| EMAIL_HOST_USER | '' |
| EMAIL_PORT | 25 |
| EMAIL_SUBJECT_PREFIX | '[Django] ' |
| IGNORABLE_404_ENDS | ('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico', '.php') |
| IGNORABLE_404_STARTS | ('/cgi-bin/', '/_vti_bin', '/_vti_inf') |
| INSTALLED_APPS | ['dbc.blog',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites'] |
| INTERNAL_IPS | () |
| JING_PATH | '/usr/bin/jing' |
| LANGUAGES | (('ar', 'Arabic'),
('bn', 'Bengali'),
('cs', 'Czech'),
('cy', 'Welsh'),
('da', 'Danish'),
('de', 'German'),
('el', 'Greek'),
('en', 'English'),
('es', 'Spanish'),
('es_AR', 'Argentinean Spanish'),
('fi', 'Finnish'),
('fr', 'French'),
('gl', 'Galician'),
('hu', 'Hungarian'),
('he', 'Hebrew'),
('is', 'Icelandic'),
('it', 'Italian'),
('ja', 'Japanese'),
('nl', 'Dutch'),
('no', 'Norwegian'),
('pl', 'Polish'),
('pt-br', 'Brazilian'),
('ro', 'Romanian'),
('ru', 'Russian'),
('sk', 'Slovak'),
('sl', 'Slovenian'),
('sr', 'Serbian'),
('sv', 'Swedish'),
('ta', 'Tamil'),
('tr', 'Turkish'),
('uk', 'Ukrainian'),
('zh-cn', 'Simplified Chinese'),
('zh-tw', 'Traditional Chinese')) |
| LANGUAGES_BIDI | ('he', 'ar') |
| LANGUAGE_CODE | 'en-uk' |
| MANAGERS | (('Duncan Cragg', 'blog-admin@cilux.org'),) |
| MEDIA_ROOT | '/home/duncan/psilog/net/duncan-cragg.org/' |
| MEDIA_URL | 'http://duncan-cragg.org' |
| MIDDLEWARE_CLASSES | ('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware') |
| MONTH_DAY_FORMAT | 'F j' |
| PREPEND_WWW | False |
| PROFANITIES_LIST | '********************' |
| ROOT_URLCONF | 'dbc.urls' |
| SECRET_KEY | '********************' |
| SEND_BROKEN_LINK_EMAILS | False |
| SERVER_EMAIL | 'root@localhost' |
| SESSION_COOKIE_AGE | 1209600 |
| SESSION_COOKIE_DOMAIN | None |
| SESSION_COOKIE_NAME | 'sessionid' |
| SESSION_COOKIE_SECURE | False |
| SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
| SESSION_SAVE_EVERY_REQUEST | False |
| SETTINGS_MODULE | 'dbc.settings' |
| SITE_ID | 1 |
| TEMPLATE_CONTEXT_PROCESSORS | ('django.core.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n') |
| TEMPLATE_DEBUG | True |
| TEMPLATE_DIRS | () |
| TEMPLATE_LOADERS | ('django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source') |
| TEMPLATE_STRING_IF_INVALID | '' |
| TEST_DATABASE_NAME | None |
| TEST_RUNNER | 'django.test.simple.run_tests' |
| TIME_FORMAT | 'P' |
| TIME_ZONE | 'Europe/London' |
| TRANSACTIONS_MANAGED | False |
| URL_VALIDATOR_USER_AGENT | 'Django/0.96pre (http://www.djangoproject.com)' |
| USE_ETAGS | False |
| USE_I18N | True |
| YEAR_MONTH_FORMAT | 'F Y' |
You're seeing this error because you have DEBUG = True in your
Django settings file. Change that to False, and Django will
display a standard 500 page.