I would imagine that the deserialize function tries to encode the
input down to ascii. My suggestion would be to find the XML serializer
code and see what it is doing with the input string you pass to it.



On Jul 29, 2:23 pm, l5x <mail.loo...@gmail.com> wrote:
> Hello,
>
> first of all, congratulations!
>
> I have a problem. When trying to open template I get following error:
>
> Original Traceback (most recent call last):
>   File "/usr/lib/python2.5/site-packages/django/template/debug.py",
> line 71, in render_node
>     result = node.render(context)
>   File "/usr/lib/python2.5/site-packages/django/template/
> defaulttags.py", line 206, in render
>     val1 = self.var1.resolve(context, True)
>   File "/usr/lib/python2.5/site-packages/django/template/__init__.py",
> line 546, in resolve
>     obj = self.var.resolve(context)
>   File "/usr/lib/python2.5/site-packages/django/template/__init__.py",
> line 687, in resolve
>     value = self._resolve_lookup(context)
>   File "/usr/lib/python2.5/site-packages/django/template/__init__.py",
> line 722, in _resolve_lookup
>     current = current()
>   File "/home/user/django_projects/bis/bis/../bis/Log/models.py", line
> 124, in deserialized_object
>     for obj in serializers.deserialize("xml", self.data):
>   File "/usr/lib/python2.5/site-packages/django/core/serializers/
> xml_serializer.py", line 128, in next
>     for event, node in self.event_stream:
>   File "/usr/lib/python2.5/xml/dom/pulldom.py", line 232, in next
>     rc = self.getEvent()
>   File "/usr/lib/python2.5/xml/dom/pulldom.py", line 265, in getEvent
>     self.parser.feed(buf)
>   File "/usr/lib/python2.5/xml/sax/expatreader.py", line 207, in feed
>     self._parser.Parse(data, isFinal)
> UnicodeEncodeError: 'ascii' codec can't encode character u'\u0142' in
> position 154: ordinal not in range(128)
>
> I use latest SVN version (1.1) revision 11367. I have # -*- coding:
> utf-8 -*-  line at the beginning of the file, and __unicode__ method
> is set on the model, which I serialize and on Log model as well.
>
> My serialization:
>
>     [ some model ... ]
>
> def save(self, force_insert=False, force_update=False):
>         super(Record,self).save(force_insert, force_update)
>         data_xml = serializers.serialize("xml", Record.objects.filter
> (id=self.id))
>         Log.objects.create(user=user, action="zapis", type="Record",
>               object=self.id, data=data_xml)
>
> Deserialization:
>
>     [ my model: Log ... ]
>
>     def deserialized_object(self):
>         for obj in serializers.deserialize("xml", self.data):
>             return obj.object   [1]
>
> [1] There is only one object so I use return on the first try.
>
> My template:
>
> {% ifnotequal log.deserialized_object.value
> log.previous.deserialized_object.value %}
>     something
>  {% endifnotequal %}
>
> It doesn't matter how do I put data to database: manually using create
> () or via form.save(), and it is in UTF-8. In addition I don't have
> any problems with database and unicode in other parts of my project,
> only during this deserialization.
>
> I tried to pass data to deserializer after using force_unicode, but
> the result is the same.
>
> I would appreciate any help.
>
> Best regards,
> Luke
--~--~---------~--~----~------------~-------~--~----~
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