Daniel, if I don't do that, I get the unicode error in the list of dashboards in the admin section.
On Fri, Jul 30, 2010 at 04:29, Daniel Roseman <dan...@roseman.org.uk> wrote: > On Jul 29, 11:27 pm, Eric <ericbr...@gmail.com> wrote: > > I am getting this error in the Django Administration section when I > > add an entry for a Dashboard object. > > > > When I return to the item in the Admin section, the record has been > > added and it displays correctly in the list of Dashboard objects. When > > I click on it, it shows correctly. Only when I add a new one or save > > one does that happend. And, I noticed that the history is not > > populated. > > > > The traceback is: > > > > Environment: > > > > Request Method: POST > > Request URL:http://127.0.0.1:8000/admin/dashboard/dashboard/1/ > > Django Version: 1.2.1 > > Python Version: 2.6.2 > > Installed Applications: > > ['django.contrib.auth', > > 'django.contrib.contenttypes', > > 'django.contrib.sessions', > > 'django.contrib.sites', > > 'django.contrib.messages', > > 'django.contrib.admin', > > 'ManagementReview.dashboard'] > > 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') > > > > Traceback: > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/core/handlers/base.py" in get_response > > 100. response = callback(request, > > *callback_args, **callback_kwargs) > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/contrib/admin/options.py" in wrapper > > 239. return self.admin_site.admin_view(view)(*args, > > **kwargs) > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/utils/decorators.py" in _wrapped_view > > 76. response = view_func(request, *args, > > **kwargs) > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/views/decorators/cache.py" in > > _wrapped_view_func > > 69. response = view_func(request, *args, **kwargs) > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/contrib/admin/sites.py" in inner > > 190. return view(request, *args, **kwargs) > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/utils/decorators.py" in _wrapper > > 21. return decorator(bound_func)(*args, **kwargs) > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/utils/decorators.py" in _wrapped_view > > 76. response = view_func(request, *args, > > **kwargs) > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/utils/decorators.py" in bound_func > > 17. return func(self, *args2, **kwargs2) > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/db/transaction.py" in > > _commit_on_success > > 299. res = func(*args, **kw) > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/contrib/admin/options.py" in > > change_view > > 901. self.log_change(request, new_object, > > change_message) > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/contrib/admin/options.py" in log_change > > 443. object_repr = force_unicode(object), > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/site-packages/django/utils/encoding.py" in force_unicode > > 66. s = unicode(s) > > File "/Users/Eric/Documents/DjangoProjects/ManagementReview/../ > > ManagementReview/dashboard/models.py" in __unicode__ > > 47. return u"%s" % self.name.decode('utf-8') > > File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/ > > python2.6/encodings/utf_8.py" in decode > > 16. return codecs.utf_8_decode(input, errors, True) > > > > Exception Type: UnicodeEncodeError at /admin/dashboard/dashboard/1/ > > Exception Value: ('ascii', u"Eric's Nifty D\xe4shboard Entry", 14, 15, > > 'ordinal not in range(128)') > > > > The model looks like this: > > > > class Dashboard(models.Model): > > name = models.CharField("Dashboard name",max_length=100) > > fiscal_year = models.IntegerField("Fiscal year") > > region = models.CharField("Region", max_length=30) > > review_date = models.DateField("Review date") > > date_completed = models.DateField("Date Completed") > > > > def __unicode__(self): > > return u"%s" % self.name.decode('utf-8') > > > > Can somebody help me figure out what is going on here? > > > > Thanks > > Eric > > This wouldn't necessarily cause that error, but your __unicode__ > method is unnecessarily complicated. All model elements retrieved from > the db are already unicode, so there's no reason to 'decode' from > utf-8. The method should simply return self.name. > > In fact, on reflection this could well be the cause of your problem - > because you're calling .decode() on something that is already unicode, > Python will try to encode it to bytes first - and since you haven't > specified an encoding, it will default to ASCII, hence the encoding > error. > -- > DR. > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-us...@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- ------------------------------------------------------------------- Make a Small Loan, Make a Big Difference - Check out Kiva.org to Learn How! -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@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.