I have this error since a long time but can't figure it out :
Caught TypeError while rendering: coercing to Unicode: need string or buffer, NoneType found
It happens in admin when I try to add or modify on one of my models (display works fine)
This is the model:
class PS(models.Model): id_ps = models.IntegerField(null=True) client = models.ForeignKey(Client, null=True, blank=True) nom_du_site = models.CharField(max_length=250) rue_livraison = models.TextField(null=True) complement_adresse = models.TextField(null=True) code_postal_livraison = models.CharField(max_length=50, null=True) ville_livraison = models.CharField(max_length=200, null=True) pays_livraison = models.CharField(max_length=200, null=True) distributeur = models.CharField(max_length=50, null=True) tarif = models.CharField(max_length=250, null=True) type_tarif = models.CharField(max_length=50, null=True) type_installation = models.CharField(max_length=50, null=True) def __unicode__(self): return self.nom_du_site @property def pce(self): try: return PCE.objects.filter(ps=self)[0] except IndexError: return # def get_pce(self): from pce.models import PCE return PCE.objects.filter(ps=self).exclude(frequence='6M') # def get_pce_6m(self): from pce.models import PCE return PCE.objects.filter(ps=self,frequence='6M')
Any idea what am i doing wrong here?
Traceback:
Environment: Request Method: GET Request URL: http://127.0.0.1:8026/admin/ps/ps/add/ Django Version: 1.2.5 Python Version: 2.7.2 Installed Applications: ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.admin', 'easy_thumbnails', 'django_extensions', 'contentadmin', 'south', 'sentry', 'sentry.client', 'indexer', 'file_uploader', 'paging', 'pagination', 'consommation', 'ps', 'pce', 'profil', 'analytics', 'document'] Installed Middleware: ('annoying.middlewares.StaticServe', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'pagination.middleware.PaginationMiddleware') Template error: In template /usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/admin/includes/fieldset.html, error at line 19 Caught TypeError while rendering: coercing to Unicode: need string or buffer, NoneType found 9 : {% for field in line %} 10 : <div{% if not line.fields|length_is:'1' %} class="field-box{% if not field.is_readonly and field.errors %} errors{% endif %}"{% endif %}> 11 : {% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %} 12 : {% if field.is_checkbox %} 13 : {{ field.field }}{{ field.label_tag }} 14 : {% else %} 15 : {{ field.label_tag }} 16 : {% if field.is_readonly %} 17 : <p>{{ field.contents }}</p> 18 : {% else %} 19 : {{ field.field }} 20 : {% endif %} 21 : {% endif %} 22 : {% if field.field.field.help_text %} 23 : <p class="help">{{ field.field.field.help_text|safe }}</p> 24 : {% endif %} 25 : </div> 26 : {% endfor %} 27 : </div> 28 : {% endfor %} 29 : </fieldset> Traceback: File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 100. response = callback(request, *callback_args, **callback_kwargs) File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in wrapper 288. return self.admin_site.admin_view(view)(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view 76. response = view_func(request, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func 78. response = view_func(request, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/sites.py" in inner 190. return view(request, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapper 21. return decorator(bound_func)(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view 76. response = view_func(request, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in bound_func 17. return func(self, *args2, **kwargs2) File "/usr/local/lib/python2.7/dist-packages/django/db/transaction.py" in _commit_on_success 299. res = func(*args, **kw) File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in add_view 909. return self.render_change_form(request, context, form_url=form_url, add=True) File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in render_change_form 692. ], context, context_instance=context_instance) File "/usr/local/lib/python2.7/dist-packages/django/shortcuts/__init__.py" in render_to_response 20. return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in render_to_string 186. return t.render(context_instance) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render 173. return self._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in _render 167. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render 796. bits.append(self.render_node(node, context)) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 72. result = node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render 125. return compiled_parent._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in _render 167. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render 796. bits.append(self.render_node(node, context)) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 72. result = node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render 125. return compiled_parent._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in _render 167. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render 796. bits.append(self.render_node(node, context)) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 72. result = node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render 62. result = block.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render 796. bits.append(self.render_node(node, context)) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 72. result = node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render 174. nodelist.append(node.render(context)) File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render 139. return self.template.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render 173. return self._render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in _render 167. return self.nodelist.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render 796. bits.append(self.render_node(node, context)) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 72. result = node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render 174. nodelist.append(node.render(context)) File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render 174. nodelist.append(node.render(context)) File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render 260. return self.nodelist_false.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render 796. bits.append(self.render_node(node, context)) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 72. result = node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render 260. return self.nodelist_false.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render 796. bits.append(self.render_node(node, context)) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node 72. result = node.render(context) File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render 91. output = force_unicode(output) File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_unicode 66. s = unicode(s) File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in __unicode__ 408. return self.as_widget() File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in as_widget 450. return widget.render(name, data, attrs=attrs) File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/widgets.py" in render 247. output = [self.widget.render(name, value, *args, **kwargs)] File "/usr/local/lib/python2.7/dist-packages/django/forms/widgets.py" in render 447. options = self.render_options(choices, [value]) File "/usr/local/lib/python2.7/dist-packages/django/forms/widgets.py" in render_options 464. for option_value, option_label in chain(self.choices, choices): File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in __iter__ 898. yield self.choice(obj) File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in choice 904. return (self.field.prepare_value(obj), self.field.label_from_instance(obj)) File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in label_from_instance 955. return smart_unicode(obj) File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in smart_unicode 39. return force_unicode(s, encoding, strings_only, errors) File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_unicode 66. s = unicode(s) Exception Type: TemplateSyntaxError at /admin/ps/ps/add/ Exception Value: Caught TypeError while rendering: coercing to Unicode: need string or buffer, NoneType found
This error happens when you have a __unicode__
method that is a returning a field that is not entered. Any blank field is None
and Python cannot convert None
, so you get the error.
In your case, the problem most likely is with the PCE
model's __unicode__
method, specifically the field its returning.
You can prevent this by returning a default value:
def __unicode__(self): return self.some_field or u'None'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With