class UserProfile(models.Model): user = models.ForeignKey(User, unique=True) mobile_number = models.CharField(maxlength=75) birth_date = models.DateField() def __str__(self): return "Profile information for %s" % self.user.username class Admin: list_display = ('__str__', 'birth_date', 'mobile_number') list_filter = ('user__date_joined',) search_fields = ('user__username', 'user__first_name') ERROR I GET - Traceback (innermost last) Switch back to interactive view * /usr/lib/python2.3/site-packages/django/core/handlers/base.py in get_response 70. # Apply view middleware 71. for middleware_method in self._view_middleware: 72. response = middleware_method(request, callback, callback_args, callback_kwargs) 73. if response: 74. return response 75. 76. try: 77. response = callback(request, *callback_args, **callback_kwargs) ... 78. except Exception, e: 79. # If the view raised an exception, run it through exception 80. # middleware, and if the exception middleware returns a 81. # response, use that. Otherwise, reraise the exception. 82. for middleware_method in self._exception_middleware: 83. response = middleware_method(request, e) ▶ Local vars Variable Value callback callback_args ('registration', 'userprofile') callback_kwargs {} debug e exceptions mail_admins middleware_method > request , POST:, COOKIES:{'__utma': '184279343.435217782.1197539581.1197539581.1197552246.2', '__utmb': '184279343', '__utmc': '184279343', '__utmz': '184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)', 'sessionid': 'b1e8d69aefb6c4697245815c785649d0'}, META:{'AUTH_TYPE': None, 'CONTENT_LENGTH': 0L, 'CONTENT_TYPE': None, 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': '__utma=184279343.435217782.1197539581.1197539581.1197552246.2; __utmc=184279343; __utmz=184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmb=184279343; sessionid=b1e8d69aefb6c4697245815c785649d0', 'HTTP_HOST': '82.195.156.102', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': 'http://82.195.156.102/admin/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11', 'PATH_INFO': '/registration/userprofile/', 'PATH_TRANSLATED': None, 'QUERY_STRING': None, 'REMOTE_ADDR': '217.78.9.66', 'REMOTE_HOST': None, 'REMOTE_IDENT': None, 'REMOTE_USER': None, 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': None, 'SERVER_NAME': 'bodytonicmusic.com', 'SERVER_PORT': 0, 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'mod_python'}> resolver response None self settings urlconf 'bodytonic.urls' urlresolvers * /usr/lib/python2.3/site-packages/django/contrib/admin/views/decorators.py in _checklogin 48. def _checklogin(request, *args, **kwargs): 49. if request.user.is_authenticated() and request.user.is_staff: 50. # The user is valid. Continue to the admin page. 51. if request.POST.has_key('post_data'): 52. # User must have re-authenticated through a different window 53. # or tab. 54. request.POST = _decode_post_data(request.POST['post_data']) 55. return view_func(request, *args, **kwargs) ... 56. 57. assert hasattr(request, 'session'), "The Django admin requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." 58. 59. # If this isn't already the login page, display it. 60. if not request.POST.has_key(LOGIN_FORM_KEY): 61. if request.POST: ▶ Local vars Variable Value args ('registration', 'userprofile') kwargs {} request , POST:, COOKIES:{'__utma': '184279343.435217782.1197539581.1197539581.1197552246.2', '__utmb': '184279343', '__utmc': '184279343', '__utmz': '184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)', 'sessionid': 'b1e8d69aefb6c4697245815c785649d0'}, META:{'AUTH_TYPE': None, 'CONTENT_LENGTH': 0L, 'CONTENT_TYPE': None, 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': '__utma=184279343.435217782.1197539581.1197539581.1197552246.2; __utmc=184279343; __utmz=184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmb=184279343; sessionid=b1e8d69aefb6c4697245815c785649d0', 'HTTP_HOST': '82.195.156.102', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': 'http://82.195.156.102/admin/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11', 'PATH_INFO': '/registration/userprofile/', 'PATH_TRANSLATED': None, 'QUERY_STRING': None, 'REMOTE_ADDR': '217.78.9.66', 'REMOTE_HOST': None, 'REMOTE_IDENT': None, 'REMOTE_USER': None, 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': None, 'SERVER_NAME': 'bodytonicmusic.com', 'SERVER_PORT': 0, 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'mod_python'}> view_func * /usr/lib/python2.3/site-packages/django/views/decorators/cache.py in _wrapped_view_func 32. 33. def never_cache(view_func): 34. """ 35. Decorator that adds headers to a response so that it will 36. never be cached. 37. """ 38. def _wrapped_view_func(request, *args, **kwargs): 39. response = view_func(request, *args, **kwargs) ... 40. add_never_cache_headers(response) 41. return response 42. return _wrapped_view_func ▶ Local vars Variable Value args ('registration', 'userprofile') kwargs {} request , POST:, COOKIES:{'__utma': '184279343.435217782.1197539581.1197539581.1197552246.2', '__utmb': '184279343', '__utmc': '184279343', '__utmz': '184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)', 'sessionid': 'b1e8d69aefb6c4697245815c785649d0'}, META:{'AUTH_TYPE': None, 'CONTENT_LENGTH': 0L, 'CONTENT_TYPE': None, 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': '__utma=184279343.435217782.1197539581.1197539581.1197552246.2; __utmc=184279343; __utmz=184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmb=184279343; sessionid=b1e8d69aefb6c4697245815c785649d0', 'HTTP_HOST': '82.195.156.102', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': 'http://82.195.156.102/admin/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11', 'PATH_INFO': '/registration/userprofile/', 'PATH_TRANSLATED': None, 'QUERY_STRING': None, 'REMOTE_ADDR': '217.78.9.66', 'REMOTE_HOST': None, 'REMOTE_IDENT': None, 'REMOTE_USER': None, 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': None, 'SERVER_NAME': 'bodytonicmusic.com', 'SERVER_PORT': 0, 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'mod_python'}> view_func * /usr/lib/python2.3/site-packages/django/contrib/admin/views/main.py in change_list 753. def change_list(request, app_label, model_name): 754. model = models.get_model(app_label, model_name) 755. if model is None: 756. raise Http404("App %r, model %r, not found" % (app_label, model_name)) 757. if not request.user.has_perm(app_label + '.' + model._meta.get_change_permission()): 758. raise PermissionDenied 759. try: 760. cl = ChangeList(request, model) ... 761. except IncorrectLookupParameters: 762. # Wacky lookup parameters were given, so redirect to the main 763. # changelist page, without parameters, and pass an 'invalid=1' 764. # parameter via the query string. If wacky parameters were given and 765. # the 'invalid=1' parameter was already in the query string, something 766. # is screwed up with the database, so display an error page. ▶ Local vars Variable Value app_label 'registration' model model_name 'userprofile' request , POST:, COOKIES:{'__utma': '184279343.435217782.1197539581.1197539581.1197552246.2', '__utmb': '184279343', '__utmc': '184279343', '__utmz': '184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)', 'sessionid': 'b1e8d69aefb6c4697245815c785649d0'}, META:{'AUTH_TYPE': None, 'CONTENT_LENGTH': 0L, 'CONTENT_TYPE': None, 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': '__utma=184279343.435217782.1197539581.1197539581.1197552246.2; __utmc=184279343; __utmz=184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmb=184279343; sessionid=b1e8d69aefb6c4697245815c785649d0', 'HTTP_HOST': '82.195.156.102', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': 'http://82.195.156.102/admin/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11', 'PATH_INFO': '/registration/userprofile/', 'PATH_TRANSLATED': None, 'QUERY_STRING': None, 'REMOTE_ADDR': '217.78.9.66', 'REMOTE_HOST': None, 'REMOTE_IDENT': None, 'REMOTE_USER': None, 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': None, 'SERVER_NAME': 'bodytonicmusic.com', 'SERVER_PORT': 0, 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'mod_python'}> * /usr/lib/python2.3/site-packages/django/contrib/admin/views/main.py in __init__ 567. del self.params[ERROR_FLAG] 568. 569. self.order_field, self.order_type = self.get_ordering() 570. self.query = request.GET.get(SEARCH_VAR, '') 571. self.query_set = self.get_query_set() 572. self.get_results(request) 573. self.title = (self.is_popup and _('Select %s') % self.opts.verbose_name or _('Select %s to change') % self.opts.verbose_name) 574. self.filter_specs, self.has_filters = self.get_filters(request) ... 575. self.pk_attname = self.lookup_opts.pk.attname 576. 577. def get_filters(self, request): 578. filter_specs = [] 579. if self.lookup_opts.admin.list_filter and not self.opts.one_to_one_field: 580. filter_fields = [self.lookup_opts.get_field(field_name) \ ▶ Local vars Variable Value model request , POST:, COOKIES:{'__utma': '184279343.435217782.1197539581.1197539581.1197552246.2', '__utmb': '184279343', '__utmc': '184279343', '__utmz': '184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)', 'sessionid': 'b1e8d69aefb6c4697245815c785649d0'}, META:{'AUTH_TYPE': None, 'CONTENT_LENGTH': 0L, 'CONTENT_TYPE': None, 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': '__utma=184279343.435217782.1197539581.1197539581.1197552246.2; __utmc=184279343; __utmz=184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmb=184279343; sessionid=b1e8d69aefb6c4697245815c785649d0', 'HTTP_HOST': '82.195.156.102', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': 'http://82.195.156.102/admin/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11', 'PATH_INFO': '/registration/userprofile/', 'PATH_TRANSLATED': None, 'QUERY_STRING': None, 'REMOTE_ADDR': '217.78.9.66', 'REMOTE_HOST': None, 'REMOTE_IDENT': None, 'REMOTE_USER': None, 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': None, 'SERVER_NAME': 'bodytonicmusic.com', 'SERVER_PORT': 0, 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'mod_python'}> self * /usr/lib/python2.3/site-packages/django/contrib/admin/views/main.py in get_filters 573. self.title = (self.is_popup and _('Select %s') % self.opts.verbose_name or _('Select %s to change') % self.opts.verbose_name) 574. self.filter_specs, self.has_filters = self.get_filters(request) 575. self.pk_attname = self.lookup_opts.pk.attname 576. 577. def get_filters(self, request): 578. filter_specs = [] 579. if self.lookup_opts.admin.list_filter and not self.opts.one_to_one_field: 580. filter_fields = [self.lookup_opts.get_field(field_name) \ ... 581. for field_name in self.lookup_opts.admin.list_filter] 582. for f in filter_fields: 583. spec = FilterSpec.create(f, request, self.params, self.model) 584. if spec and spec.has_output(): 585. filter_specs.append(spec) 586. return filter_specs, bool(filter_specs) ▶ Local vars Variable Value _[1] field_name 'user__date_joined' filter_specs [] request , POST:, COOKIES:{'__utma': '184279343.435217782.1197539581.1197539581.1197552246.2', '__utmb': '184279343', '__utmc': '184279343', '__utmz': '184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)', 'sessionid': 'b1e8d69aefb6c4697245815c785649d0'}, META:{'AUTH_TYPE': None, 'CONTENT_LENGTH': 0L, 'CONTENT_TYPE': None, 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=0', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': '__utma=184279343.435217782.1197539581.1197539581.1197552246.2; __utmc=184279343; __utmz=184279343.1197539581.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmb=184279343; sessionid=b1e8d69aefb6c4697245815c785649d0', 'HTTP_HOST': '82.195.156.102', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': 'http://82.195.156.102/admin/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11', 'PATH_INFO': '/registration/userprofile/', 'PATH_TRANSLATED': None, 'QUERY_STRING': None, 'REMOTE_ADDR': '217.78.9.66', 'REMOTE_HOST': None, 'REMOTE_IDENT': None, 'REMOTE_USER': None, 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': None, 'SERVER_NAME': 'bodytonicmusic.com', 'SERVER_PORT': 0, 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'mod_python'}> self * /usr/lib/python2.3/site-packages/django/db/models/options.py in get_field 94. 95. def get_field(self, name, many_to_many=True): 96. "Returns the requested field by name. Raises FieldDoesNotExist on error." 97. to_search = many_to_many and (self.fields + self.many_to_many) or self.fields 98. for f in to_search: 99. if f.name == name: 100. return f 101. raise FieldDoesNotExist, '%s has no field named %r' % (self.object_name, name) ... 102. 103. def get_order_sql(self, table_prefix=''): 104. "Returns the full 'ORDER BY' clause for this object, according to self.ordering." 105. if not self.ordering: return '' 106. pre = table_prefix and (table_prefix + '.') or '' 107. return 'ORDER BY ' + orderlist2sql(self.ordering, self, pre) ▶ Local vars Variable Value f many_to_many True name 'user__date_joined' self to_search [, , , ] Traceback (most recent call last): File "/usr/lib/python2.3/site-packages/django/core/handlers/base.py" in get_response 77. response = callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.3/site-packages/django/contrib/admin/views/decorators.py" in _checklogin 55. return view_func(request, *args, **kwargs) File "/usr/lib/python2.3/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 39. response = view_func(request, *args, **kwargs) File "/usr/lib/python2.3/site-packages/django/contrib/admin/views/main.py" in change_list 760. cl = ChangeList(request, model) File "/usr/lib/python2.3/site-packages/django/contrib/admin/views/main.py" in __init__ 574. self.filter_specs, self.has_filters = self.get_filters(request) File "/usr/lib/python2.3/site-packages/django/contrib/admin/views/main.py" in get_filters 580. filter_fields = [self.lookup_opts.get_field(field_name) \ File "/usr/lib/python2.3/site-packages/django/db/models/options.py" in get_field 101. raise FieldDoesNotExist, '%s has no field named %r' % (self.object_name, name) FieldDoesNotExist at /admin/registration/userprofile/ UserProfile has no field named 'user__date_joined'