Django:Httpresponse与文件对象和更新字段值

时间:2011-08-16 17:05:45

标签: django httpresponse

我在创建Httpresponse之后将值保存/更新到数据库表时遇到问题,并且正在寻找任何提示,帮助,指针等。我正在将pdf对象从我的数据库传递给浏览器,当更新代码不在模型中时,它可以正常工作。使用下面的代码,我得到一个Django Unicode解码错误。异常说明:“'utf8'编解码器无法解码位置564-565中的字节:无效数据。”奇怪的是,当我没有尝试更新pdf_printed字段时没有发生这个错误(意味着没有正常发生解码错误,我得到pdf对象显示没有这个问题),所以想知道这两个方法是否以某种方式发生冲突。 ..似乎obj.save可能是问题。再次感谢您对此问题的任何见解!

我还应该补充一点,更新代码设法更新字段;它只是不显示pdf对象。

from django.contrib import admin
from django.contrib.auth.models import User
from django.pdf.models import ABC
from django.http import HttpResponse


class ABCAdmin(admin.ModelAdmin):

    actions = ['print_selected_pdf']

    def get_user(self):
        return '%s'%(self.user.username)

    def create_pdf(self, queryset):
        response = HttpResponse(mimetype="application/pdf")
        response['Content-Disposition'] = 'attachment; filename=form.pdf'

        for obj in queryset:
            response.write(obj.form)
            #update the pdf_printed to true
            obj.pdf_printed=True
            obj.save()
        return response

    def print_selected_pdf(self, request, queryset):
        # prints the pdfs for those that are selected,
        # regardless if the pdf_printed field is true or false
        qs = queryset.filter(pdf_printed__exact=0)
        return self.create_pdf(qs)

    print_selected_pdf.short_description = "Print PDF"

admin.site.register(ABC, ABCAdmin)

回溯:

Environment:

Request Method: POST
Request URL: http://127.0.0.1:8000/admin/pdf/abc/
Django Version: 1.1
Python Version: 2.5.2
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.admin',
 'djangostuff.pdf']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')


Traceback:
File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py" in get_response
  92.                 response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/options.py" in wrapper
  226.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  44.         response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/sites.py" in inner
  186.             return view(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/contrib/admin/options.py" in changelist_view
  912.             response = self.response_action(request, queryset=cl.get_query_set())
File "/usr/lib/python2.5/site-packages/django/contrib/admin/options.py" in response_action
  694.             response = func(self, request, queryset.filter(pk__in=selected))
File "/home/user/django/djangostuff/../djangostuff/pdf/admin.py" in print_selected_pdf
  50.         return self.create_pdf(qs)
File "/home/user/django/djangostuff/../djangostuff/pdf/admin.py" in create_pdf
  43.             obj.save()
File "/usr/lib/python2.5/site-packages/django/db/models/base.py" in save
  410.         self.save_base(force_insert=force_insert, force_update=force_update)
File "/usr/lib/python2.5/site-packages/django/db/models/base.py" in save_base
  474.                         rows = manager.filter(pk=pk_val)._update(values)
File "/usr/lib/python2.5/site-packages/django/db/models/query.py" in _update
  444.         return query.execute_sql(None)
File "/usr/lib/python2.5/site-packages/django/db/models/sql/subqueries.py" in execute_sql
  120.         cursor = super(UpdateQuery, self).execute_sql(result_type)
File "/usr/lib/python2.5/site-packages/django/db/models/sql/query.py" in execute_sql
  2369.         cursor.execute(sql, params)
File "/usr/lib/python2.5/site-packages/django/db/backends/util.py" in execute
  22.             sql = self.db.ops.last_executed_query(self.cursor, sql, params)
File "/usr/lib/python2.5/site-packages/django/db/backends/__init__.py" in last_executed_query
  213.             u_params = tuple([to_unicode(val) for val in params])
File "/usr/lib/python2.5/site-packages/django/db/backends/__init__.py" in <lambda>
  211.         to_unicode = lambda s: force_unicode(s, strings_only=True)
File "/usr/lib/python2.5/site-packages/django/utils/encoding.py" in force_unicode
  92.         raise DjangoUnicodeDecodeError(s, *e.args)

Exception Type: DjangoUnicodeDecodeError at /admin/pdf/abc/
Exception Value: 'utf8' codec can't decode bytes in position 564-565: invalid data. You passed in '%PDF-1.3\n1 0 obj\n<<\n/Kids [ 4 0 R 5 0 R ]\n/Type /Pages\n/Count 2\n>>\nendobj\n2 0 obj\n<<\n/Producer (Python PDF Library \\055 http\\072\\057\\057pybrary\\056net\\057pyPdf\\057)\n>>\nendobj\n3 0 obj\n<<\n/Type /Catalog\n/Pages 1 0 R\n>>\nendobj\n4 0 obj\n<<\n/Parent 1 0 R\n/Contents 6 0 R\n/Resources 7 0 R\n/Rotate 0\n/CropBox [ 0 0 612 792 ]\n/MediaBox [ 0 0 612 792 ]\n/Type /Page\n>>\nendobj\n5 0 obj\n<<\n/Parent 1 0 R\n/Contents 17 0 R\n/Resources 18 0 R\n/Rotate 0\n/CropBox [ 0 0 612 792 ]\n/MediaBox [ 0 0 612 792 ]\n/Type /Page\n>>\nendobj\n6 0 obj\n<<\n/Length 4167\n/Filter /FlateDecode\n>>\nstream\nh\xde\xec[[o\xe36\x16~\xcf\xaf \n\x14\x90\x8a\xb1*\x92\xbaP}Yt\xda\xed\xec\x14\xdb\xe9l\x93\xc5b1\xe9\x83b\xcb\xb1&\x8e\x94Jr\x82\xfc\xfb=\x17\xd2\x96\x14G\xee\xb4\xc5n\x84m\x06cQ\x14/\xe7;<$?\x1e\x92_\xbe9\x97\xe2\xba={}q\xf6\xe5\xc5\x85\x12R\\\xac\xcf\xa4\x0e\xb2$5"\x84\x7f.\xac\xb2\xc0(\x91\xa4:0\xe2\xe2\xf6,\x14\xd7\xf0\xffb\x89?\x0fg\xdewe\xd3v\xe2]~[\xf8\x17\x1f\xcf\xfezq&\xe9\xfb\x1bx~\x0f\x85|\x142\x08\xd3L<\x08\x19\x8a\x1f\xc4\x87\x9fC\xb1\x82O\xa58Sq\x14D"I\xd2@\x1b\xb1P*\nb|FA\x98\x88\xa68{\xfd\x05$\xfb(\xce~\x01\xc1H\x1a\'G\x92\x04&\x12\xcb[\x8aEq\x16J\x07Rl\xcf\xce\xf7)\xa5\tR\x05\xa1?\x13\xbd\x84Dg\xff@\x1b;jYF\x07lY2r\xa6\xe5\xfd=?fO`\tq\x02\xd9"2\x00\xa8k\xa1L\x18\xa4\xd1\xb4\xc5p\xf9\x90A=\xb5\x98\xe4W\x01\xf83\xd5\xff]*k\xaf*\x08\x95\xce8\x83\rk\x19$J\xc4\xa1\x0c2g\xae\x8b \x0cU\x82\xc3\xe1\x07\xef\xed\xbb\xf3\x0b\x7f\x91\x05\xda\xfb\xe9\x9f\xdf@(\x82\xd0\xdb\x1f\xdf\x9d\xfb\x8b\x18B_\t\xff\xe7\x8b\xefq\xac\x8dx\xac5\x814:\x85\xe2/\xbe\xa5bb\x85\xc5@ Iqd\xfd\xe0}W7\xa2\xc8\x97\x1bQ\xafE\xe7/\xa4\x0c\x8c\xb7\xf1\xe1\xa7\x10\xebz\xeb/` \xf4\xb66\xbe~(m\xa8\xba~\x85U\xa7\x9e\xb8s\x1f\x8b\x9c\xaa\x06\x18*\x89\x13\xae\x11\xe5\x8em\x85\xa1\xe1\n\xdb\xc2\xc74\x9e(\xab\x95o\x82\xd8+\xb1$\xe9-9:\xf7S\xf8\xed\nz\x88G_\xeb \xf2j_C\xc2\x1d%o\xfc\x04\xbfl9\xc5=\xc5qx+jz[s\n[ \xe7\xadz_\xcaU/SE\x9fmZ[k\xc9\xa9\x05\xa7\xe3\x02\xca\xea\xda\x97\x18\x10\xdd\xc6!\xc8\xf9\xb9d\x91\xcb\xfb>\x9c\xae\xec\x1eI!\x0b\x15\x06Q\x94i\xb1\x90\xd0\xf6*\xb5zI"\xd4\x0b6I\x94\xb1b\x1e|\x19B\xee\x08t\xd9m\xb0d\xc4\x9d\xc2\xef\x8e_:\xb1\xad9\xd4\x02\x0c\x8d\x15\x91\xfc\x14u\xcd\x0fT\x18\xccu\x9eM\xb8\xa3\xfc\r\x14\x0c\x12\x89+z\x03\xa1\x13x\xdb\xdagE\x91\x80\x1f\xa4\x03\xfc\x14\'l\xf6CFz-8\xd1\x92\x13\xb1l\xb7~\x0c\xf2\x96\xdc\xf4`\x812\x8a\x0f\xc6\xa6\x9c\xb1A$A\x04\x1d\x1aH.vU\xdb\x15\xf9\xea\xd1W\x06mh\xdd\xd4\xb7b\xb9\xa9\xeb\xb6t)\xea\n\xdb\x02\xb4\x8df\xb9\xb1\xe1\xbb\x82\xeb\x81\xea\x8d2{\x13C\x05\xb2*\xe3\x88\xebi\xa0\x90\x04\x05\x8d\xe0Q\xf8\x19\xfcV h\xe6u9\xbd\x80\xb6\xf0\x8d\xbf\x88;\xfaT#\xd8\x0c\xda\x99\x9f]K-\xc1\xfd\t\xac&S=`\\#\x04R\xdb\x8b\xea\n;O\x02Bn\xfc\x85\xc6\xa2E\xbb\xcc\xb7\x1cU\x10@6\x06h\x9d\xd4d\x86\x8c!M\xd3\xbd\xa6\xb4-P\xdb^\x12~..\xbd\xaa\x16\xcb\xbaZ\x97\xab\x82t]AO\x83\xb6]\xf2\xdb\xa5/\xba\x1a\x08O\xf8\xb9\x8f-\x0e\xc9\x97\x14_\xdf\xdem\x8b\xae\xd8\xba&\xc9\xb4\xd6{U\x85N\xf0Pq=`/\xd8y\xa1\xb3\xc4\xa0\x8a\x1a\x0c+\xf3\xaa\xb5\x8fz\xc3jA\x15\xa8:\x89\n\xb9\xf4):\x10o}\x99Qg\xc2WaK\xe0\xac;\xb1\xe2\x80\xa8\xe8QsV\xec\x8bX\xd2\x8e^\x1b\xca\xc8\xbf\x05\xd5\xcb\x89;\x1c\xc3Ro\xebdb\x04@\xe02\xa9\x18\xc1\x07\xcf\x15O\x9d\x10\x8b\xc4N\x18RccA\xd8\t\xf1{\xc9Eu\xae\xa8\xb2\x12\xbf\xecl\x8e\xb6+k\xae\xf0\x15\xb6\x15\x14\xd1\xb1,.qneBYW\xb6\xd9\xa0\x0f+\xb0\xe2q\xb3EV\x9d0\xe0\x91:\xcb\xdb\xfc\x9al\x0f\x04\xc8hl\x01\x88bS?\x88%\xb5\xd2\xbe55\xb7&\xf6j\x1a\xe3p\x98\xa1\xf7\x9dx\xa8w\xb6\xf1`\xb2P&;\x98\x9dt\xad\xa7l\x7fZ\x89\xabB\x94k,\x02\x1a~\'68z\x1a\x88\x06U\xf2\xd0\x85C\x11\xb4\x89\x8b\xd8PD!\xf2%%\xb4\xb1%\xea!\xf6\xeeK\xfbN\xc5\x05h\xbc0\xa2\xbc\xf5\x95\x04U\xae\xfdA\x9b\xa8,I\x9eZ\x95\x94{\xab\xc2y\x03$\xaa\xb8\xbdX\xc1\xb7>\xe0f\xedB\xd7\xb0M\x9d\xd0\x80@\xa9Z\x9aw\xe8\xbbm\x04\xf1\x00\x19c\x97\xe7\x86\x06al\x16\xd7\xea\xb6\x9dW\xd6(j\xd1\xb7\x0f\x1e}\xa1O\xc0*\x80Z\xce\xe0$J\x12K\xed\x86\x0c\x0c\xa1\xc8P \x0emlB)\x0f\xaf8\xa3\xa2\t\xd1`_7>\x0cA\x9b\x9a>nW\xdc\xe9j\xdb\x94\nS\xd6\xa2\xad\x81Q&^?\x16\x07M64(\x03\x8b\xc8\xb1\x0eL%l\xc9\x9czG\xc5/)\xb7\xa2\xdc\x18\xbb\x86\xc8\x92\xeb\xc2,\x1c\x89\x89\xa8\x00,\xaa\x85v\xc1)kMp\x15\x8c\xd3Q\xa8{C\xb0\x9b~\xad\xc5\xecgT\xb0\xb3\xa2\xb1\xf3\xdd\xaeEs\xc5\xc9\xe0\x1a\x15\xd7\xda\xe8vwwW70\x10\xbay]\xc6=&\xe1\xc6viK\x0ex\xb0\xc3\xd1!\x81\x96A{I\xb1:\x18\xe2q\x1c@\xcb&\xf3L\xbd{\xb0\xbf\xca~\xc0n\t\x1d\x12\xed\x0e\x90W\xad\xedn`-\xd0\xa5F\xbd-rX\xec\xa0\x9b_\xd5;\xa6,`\xe3y\xd5\x02\xa0\x12\x85\xc0I\x8d\x0c\xfa\xda\'\x89\xb02\x8d}\xcbr\x1cL\xb1\xe1\x14\x80U\x94\xb6\x08\xfb\xa5\xb8u\x9d/\xcez\x8aD\xfa\xc2}\xcf\xf1\x98W4q(4\xe5\x94fG\xc4\x93\xfb8\xfa\xb7\xfc\x02\rd\xc8\xac\x17\xf0{\x83Uc\xc2\r\xe5\x02\x1d\xacn\xcb\xaal\xbb&\xef\xea&\xa0Ja%\x12\xa4:\x02\xca\x87,\xd0\x00\x17\x84uG$\xe2(\x0c\xb4\x884\x10D\\\x83\xacG\xcb\xe9c$\x12\x87\x0e\xa1\xa3\x04\xb3X\x169\x00\xc1\x18$6\x9a\xc2\xb95\x08\x82\x07\xd0\x03\xf6)\xb0*\xe6|8\xb3\xdf\x08~\x05\xeb\xa4\xf1\x04\xc3\xbb\n\x07\x98\x88\x86\x13M\xac\x01\xbfa\xd7\xa0\xaf-\xbf\xff\xc5!\xc2\xb5\xd5a\xb9\x14\xc3H*\xb4\xc2i\xb0\xcf\x8c\x15\xae\xba\x16`\xbd\x89\x80^\x07\xc1\x18\x92Q\x08\xba\xa9\xc1\'GKZ\x8fqj\x0e\x87\x98B\xdae\x1a\xc5\x9b}\x01\x87\x1fHC\x85\xd3KhS\x86\x94\xf9\xea\x0b&\xe3\x07\xd2|L\xa31\xad\x005\x10\xf8\xf4\x88\x83\x02&\xe1\xc3B\xf2\x00V\x86P\xa9z\x99p\x8f\x81\x94!\x18\x8c\x19\xa2\xf4dx\x1c\x1b\xb6\xe4\x9c\xb0a\x0b\x8e\xb1\xa9g\xb0efV\xd8\x14\xd8\xd9\x13l\xfa86\x05\x83Bdf\x84\r\xecLF#l\xd13\xd8\xb2h^\xd8\xc0\xce\x9e`\x8b\x8fc\xd3\x91\n\xe2\x17:t\x1e\x9d\x82\xc0\xce\xd4\x08Z\xf2\x0c\xb4,\x9c\x1740\xb31\xb4\xf48\xb4H\x9bYA\x8b\xc0\xca\xc6\xd0\xcc3\xd0\x0c\xf0\xbc\x19!\x03#S\xa3\x19\xdc\xcb\x8eC\x8b\x91\x80\xce\x07Z\x0cF\xa6\xe2,{2q3-\x99\xdey\x01\xa6\tB%\ndK0\xab\xf7m\xde=q\x8b\'\x19\xf2\xc9\x04\x17~F\xa0\x13C\x8f\xb7QT\x8c\x9f&R(i\x02sH\x91F\xb8\xd12\xe5X\xb7\x82I\xdc\x12\xfa\x9d\xfb\x02\xa0\x81\xc4j \t\xd28Q\x9c\xd3\x86S\x1c\xa8\xe2,A\xcd;\xdd}i5p\x10\xc7\xa4A\xf6\xc7HsL\x06\tKA\x9d\xf4\xa48"\x81\x8cHY\xbfS\x86?z\xcf\xe5`]`B\xb0\x1ad\xd3t\xe1\x14\x9d\x9f"\x85,\xe4\xcd\xa6\x95\x94[\xc6)\xbb\xf4\xbe\xd8\x14\xe2k\xf64/a\xed\x9b\xe2J\x0c\x97\xcb%,!\x13\xef\x9e\xfd\xa9\xa5u\x97\x94E\xbbh\xef\x8ae\xb9.\x97\xe2u\xce\x1f\xb7\xf6Y-\x0b\xf1\rfF\x7f\x14\xc7\xacmY\xab\x02?^z\xfc\xfa5\'zm\x13_\xfav\x81~\xbet%R\xdd\xc5~U\x06z\x7f\x18\x18g\x1c\x07\x19\x0c\x94\x19\x02\xeb)Gc+BY\xd8N\x02 A\x07Kl\xd7\x8f1\x06\x97\x956\x11\x05y\\\xc0\x10d\xd2\x82\xd3-\\\xd6\x05\xe5\xa5\xd2\x16\xe8n\xa14<\x1elz\x8d\xb4@?\x82\x19\xb6\xd2\x13A\xd4^\x10h\x10\xae\x1e\x02{Q\xa2h/\x0b\x04\xf7\xc2`\xd8\xe5\x9f\x90\xa6\x05[P\x81\x8c\xcdHK\xd0\xbd!c\x04\xf4\x14\x1e{\xe9\x16lU\xf6\xd17\xb7\x85L\x03\x05_\xf4!1z\x9f\xd0_\xaa\xf0\xd1O\x0bc\xb4"\x88YrH\x9d\xa2\xfab\x1c6\xfbI\xb9\x0c.\xa2\'ELP\xa4\xb1\xc6\xfc\xcb\x99R\xbc^3\x19\xf6B\xdc\n\x14\xd460>\xfdKT\xa7\x17\x89.\x7f\xa6p\x9b\x87\xc6\x92\xfd\x12\xf1\x9d\xed\xcf\xbfb\xad\xa9\xd0[\xd1/\x06\xbaM\xa6\xad\xc3%S\xd6\xfd\xf1#\xfa-\xd0\x11\x8b\xbb@\xbc\'R\xde\xf8\x8b\x8c72\x16\x86\xb60\xd0\xa9\x11\x05\x19\xf9;\xd0\xadT\xb6\xfe"5\xb8S\xf4\xaciK\x18\x83\x90\x94\xc2C\'\xff\x13\xdb\x9e\x9a\xeb\x8c\xc4\n\x86\xaaQ\xbc5\xf6\x1d\x80\xcf`\xf8(\xb7[\xdc\xc2Yhr\x0c-A\x15\xec\xcfCGY\x03\xfa0\xb4\xe1\xc1\xb1\xdb\xc2\x06P/\n\xd3\x93\x12M\xe2\xb9\x0f\xa4B\xdc\xa6\x00\x15*t\x10\x95.)\xab\x10\x86\x8b0K\xc0\xba\xc0d\x94\xdc\xbb\x8b\xf6.Q\xeb.z\xbf-r\xda\xdah\x0b\xf6U\xd1K\x03\xe3\x9d\xf1\x04\xbf\xa0\xef\x08\x87@\xc3[p\x92\x9cc\x9c\x87\\G\xb1\x87\x8e\xeb\x18?t5:\xea\xc4\xd5\xf0\xb3\xa8\xd7n\x83$U\xb2\xef\xabK\xdc\xf6\xc2\xc1\r\xa8\x0c\xed\x13\xa13p\xd7\x88\xfc\x8a\\\x80\xe4\xcd\x8ah\xec\xa5\xb7\x8e\xdfl\xeaW\xa0\x01\xac}g\xf7i"O\\m9\xe1\xae\x10u\x03o\xf9\xf2\x06t\x7f\x13\xf4\x9d?\xec\xcbR)\xf9\x0b\xd0\x97\x05\x1d\xf678\xb3\xd0\x97\xd2\xdf\x11\r\xa5\x9bG\xac\xd7Y\x917\x0b\xc5\xb2\xde,i]\xc7\x99G;1\xa9w#vw\xe8\xc8\xa5m\x1f\x121e\xafu\xf8\xc4\xa3/\xed\xae\xdc\xaa~@\xe7\xa4A\x9f"\xab~\xc3\x81B\xb4]\x8e\x9b}^\xd3\x0e|]\xee,\xca\xd8\xe9\x85\x07\x05\xf4\x1c\x9d^*\xcd\xa0k~\xaa\xd3\xebE\xc2\x9dpz\rP\x9epz\xcd\x07\x1b;\xbd\x86\xd8\xa6\x9d^\xb3\xc1f\x9d^Cl\xd3N\xaf\xf9`c\xa7\xd7\x10\xdb\xb4\xd3k>\xd8\xd8\xe95\xc46\xed\xf4\x9a\r6vz\r\xa1M;\xbd\xe6\x03\x8d\x9c^Ch\xd3N\xaf\xd9@c\xa7\xd7\x10\xda\xa4\xd3k>\xc8\xd8\xe95\x846\xe9\xf4\x9a\r\xb4\xbd\xd3k<q\xefi\xc9`+U\xa1\x0bB\xb9\xadT\x85\x1c\xf4S\xd8\xa7\x8a5N6\x87\xadTi\xdc\t\x02\xb7\x1d\xad\x89~&\xbc\x99zE\x87\xa5b\xafZ\x89\xfa\x9e\xceZ\x14\xb4\x19\xddp\xb4\xe0\x83\x1a\xf0\xf5\xae\\\xd2\x87\x1b>\xaa\xc1\xfc\x1dF\x868;vh\xcf\x92\xd2\xdd\x1d\x12~\xdc`\x16-\x1fSp\xa7\xf0J\xf6\xa3\xd8\xefwE#\xd6\x96\x08\xc3\xca\x07wpo\x89\xc0\xa6tDi\xf4\xa9\xe2\xf8\x0e\x97\x11\x0b+\xa6X\xee\x0f\xff\xd9\x9a\x8a\x8e\xf2\xa1\xcc\xf6x`]7S\x9b\xbdJ\xa7A\x92\xcc\x91\xf7\xe2\xb9\x1c\xf3\xe9\xc4\xf7%\xe2\x9d"\xbe\x03\x98\xa7\x98\xefl\xc0Y\xe6;\x04w\x82\xfa\xce\x05\x9c\xa3\xbeCp\'\xb8\xefl\xc0Y\xee;\x04w\x82\xfc\xce\x06\x9c%\xbfCp\'\xd8\xef\\\xc0Y\xf6;\xc4v\x82\xfe\xce\x06\x1b\xd3\xdf!\xb6\x13\xfcw.\xd8,\xff\x1db\x9b&\xc0\xb3\x81f\t\xf0\x10\xdb4\x03\x9e\x0b\xb6\x03\x03\x1e\xcf\xe0\x03\x82\xc2\xfcW\xa6f\xcf\x7f\x93\xdfB\x80\xf1T<\xf9\\\x0f\x1eX{\x9aP\xba\xe3\xc8\x11\x10H:\x07\xaa\xf1~B\xc0Nix@I\xb1{mp\xa7M\xe3m\x11H\xbb\xdc\xf0\xf9]b\x94\x11\xf9\xa3!\xb6aZ\x0b\x03\xa5w\xeb\'t"\x11b\xc9\xd1\x9c\xb8\x87XRdEg\x16S\xc7\x9be\xa0L\xda;\xa7\xafG\xa7_\x91\xd8f\xc0X\xed\x03\xeb\xd9\x14[\xf6\xe7\xb2\x08\x18\xd9\x89\xe2\xb1\x10[*Z\x12oW\xde\xbdK6\xc5te\xa6\xe6\xc9t%n\x16}:\xd3}\x91x\'\x98\xee\x10\xe6\t\xa6;\x1fp\xcctG\xe0\xa6\x99\xeel\xc0Y\xa6;\x027\xcdt\xe7\x03\x8e\x99\xee\x08\xdc4\xd3\x9d\x0f8f\xba#p\xd3Lw6\xe0\x98\xe9\x8e\xb0M3\xdd\xf9`#\xa6;\xc26\xcdtg\x83\x8d\x99\xee\x08\xdb$\xd3\x9d\x0f4f\xba#l\x93Lw6\xd8\xf6L\xf7\xc9\x0c~\xdc\xd9+5\xcd\xf7\xb1\x06\xaa\x18\t\xa0\xbc\x9fv\xd4@&q\xa0\xa2!\xd7=\\\x9d\xb1\xa7\xd6br\xf7\xe2\xad\xa9 `\xcfh\xd0v9\xfa{+\xf1X\xef\x1a\xbe\x01\xd4\x95w]]\xb4\x02?pT\xe1\xae\xd0\xe1\x15\xec#W\xfb\xec\x15V\xbc\x92\xbdF\x12\x8c\x17\xc4\xf0\xfeP\x83\xb7\xcb\xf0"n\nE(\xba$\\\xf2u\xbd\xca\xc7\x0b\xc0"\xbf\xaa\xef\x0br+S\xfdbS\xe4\xabI\xb6\x1ae\xa8\xcb\x19\xb2\xd5(\x0e\xe2O\'\xab/\x11\xee\x14Y\xed\xa3<\xc5Ug\x83\xcdr\xd5\x01\xb6\x13Tu.\xd8\x1cU\x1d`;\xc1Tg\x83\xcd2\xd5\x01\xb6\x13Du6\xd8,Q\x1d`;\xc1S\xe7\x82\xcd\xf2\xd4\x01\xb4\x134u6\xd0\x98\xa6\x0e\xa0\x9d`\xa9s\x81fY\xea\x00\xda4I\x9d\r2KR\x07\xd0\xa69\xea\\\xa0\x1d8\xeah\xe2\x1e\xd0\x92X\xc6x\xcf\x06\xf8)(#\xc1\xe3\xf5J\xe3E\x98\x1e=M\x9e\xbf\xab\x13\xcb\x8c\xbc\xb7\xd1\xc0\xd33\xbe\xac\x83\xe6\x0e\xa9\xa4"2\xbb\x00\xa1\xe82\x8eQ\xf6\xc8\xed\xeb/N\x13a\x15I0\xc14\x0b\xfa\xd7\xc7\xa5\xde\x9fy\xb0\x17\xc8\xdf\xfbR\xf3\xe9\x03\xf8\xcd\x97>\x1e\x9b\x96t\xe8ZJ\xbeB\xae\xbd\xb2\xc2#\x0e\x9eh;?\xf6(xC\x89\x1a\x8c\xdc\xec\x83\xcc\x8b\xf1N\x80\xd2:\x15P?\x0c\xb6\xe9\x9e\x1f\xefO0\xdb\x9a\x85\xb8\xf4~\xa8+<\xcc\x80\x8e\xe3K_\xd0\x1f\x15\x02\xfa\x8f\x8d=?\x11\xba\xf3\xbc\x89\xcdw\xe9}\x9b?B}.\x07g\x812L\xa2{||\x7f\xb88u\xf5\xd1\xdf\xa5\xf7\xef"\xf7\xf1D}s\xe9S\xce\x1ec=v\xbb*\xa1k\xe3I\x12H\xe3.\xc0D\xda\xc9d\x97\x12\x9f\xfd\xcd\xdeYy\xe0\xa7X\xe2Y\x0c0\x11tJ\xa3+\xbd\\\xf1kQu"o8\xae@\x96\xcf\xd1\xa2\xdb\xe4\x1d\xbc\xf2\xdbN\xd8bJX&d\xdev+\x9c\x9c\xae\xbd\xe3 \x8c\xdd\xf1plL}\xe0\xd0U\xddYsB\x8a\xa2Ar:\xd0\x0fv\x07\xa6\nM2\xb0\xd4\t\xdc\n\x96P\xd0\xcd\x86\xc0Q\x97\x0c\xdc\xeat\x0b\x9a\x8cq}\x83v\xd2\x02"X\xbe$\xee\x1d\x960W\xf96\xc7k;x\xb4\x9c@d`\x9dao\xd9\x14\xed\xef\x12Y\xb3(\x96\xb8\x85@;\x07R\xa31\xe2\xbd\x88]\xc5qm\x07K"\x0e>\xa2\x92"o\xc3o\x05-\xd9\x82 \xf8l\xac\xaac]\x03d\x84\x95H\x86\xe4tx\xc5\xe3}\xd1\xb4\xb0\xfa\xfb\xa9\xb8\xab\x9b\xae\xac\xae\xbf\xea\xf5\xcc\xf1\xe56\x1e\xa8\xf0N\xc6\xbc\x96`x\x84_\x99\xc1\xf2\xd8\xe1~(\xbb\x8dx\xdd\xe4e%\xdeV\x1fw\xcd\xe33\xb4\x9e(\xd4\x8b\x84~t\xc9\x92\xd1\xf5\xc01\xe6\xf3\xf2\xba\xc2;h9t\xc9\x1f\xbbM\xd1\x1c\'UR\xbe\xd8v>J\xaad|\x0cju\xbd-\xc4\xfb\xa6^\x17m[\xd6U\xbe=\xceE\xd0\xd1\xa2\xe6\x036\x8a4\xdeH}j\xce=\xa0\xe2\x9b\xbaj\x8b\xaa\xdd\xb5=\xc8\xca\xd0eM\xbc\xf2\x9a\xe0,\x8e\x1e\'j\xe7#N\xa6\x10\x06\'76\xda\xb0\xcb\x9e\xeeG\x10\xac4\xbf. K\xbd\x16\xea\xbfG\x17\x94D\xff_\n\x84E\xe3\x11G\xe4\x07\xfcK\xe5K\xf1\xc6\xdd\x0ec\x90)^\xe1AB\x81\xeb\\\xfb\x80\x94\xe7P\xf0\x9bc\xd7\xffPAP\xba\t\xcc\xc0\xc9(S\xbe\x9f\xc7O\xf7\x867\xf0\xe2\x84s\x9c\x94\'\xce\xc8\xd4>U\xa0\x18/rE"\x85Y\xa9g\xa0,A\xb8\x97h\xd1\x17\x89U\xc4\x17\x08Ok\x08~\x01\xeb\xaf\x17\x08,\x10O\x03\x11\xde\xde\xc5\xc4\xbd@\x8b\xe7ttZ \xab\xa2O\x95\xc8\xaah$\xd2XE\x03\x81\xb0\r\xb0\x953#\x12\x98\x1b\x15~M\x93\'\x02I\xa0v\xa1\xb2\xca_`JC\xaafs>\xb7\xe6l\x9e\xef7\xb1\xc6J\xd38F\\`\xce\xf0\xd3\x10\x8cP|/\x90\xf9\x82^\x1e \xfb\x0f\x82-=\xccT\x08\xdaRafM\xfe?\x02\x0c\x00.\xce\xb1\x1d\n\nendstream\nendobj\n7 0 obj\n<<\n/ExtGState <<\n/GS1 8 0 R\n>>\n/Font <<\n/TT8 9 0 R\n/TT2 11 0 R\n/TT4 13 0 R\n/TT6 15 0 R\n>>\n/ProcSet [ /PDF /Text ]\n>>\nendobj\n8 0 obj\n<<\n/OPM 1\n/Type /ExtGState\n/SM 0.02000\n/OP false\n/SA false\n/op false\n>>\nendobj\n9 0 obj\n<<\n/FirstChar 48\n/Widths [ 600 0 600 600 0 600 600 0 600 600 ]\n/Encoding /WinAnsiEncoding\n/Type /Font\n/BaseFont /CourierNewPSMT\n/LastChar 57\n/FontDescriptor 10 0 R\n/Subtype /TrueType\n>>\nendobj\n10 0 obj\n<<\n/FontBBox [ -21 -680 638 1021 ]\n/StemV 42\n/Descent -300\n/XHeight -578\n/Flags 34\n/FontStretch /Normal\n/Ascent 832\n/FontName /CourierNewPSMT\n/Type /FontDescriptor\n/FontWeight 400\n/ItalicAngle 0\n/FontFamily (Courier New)\n/CapHeight 578\n>>\nendobj\n11 0 obj\n<<\n/FirstChar 32\n/Widths [ 250 0 0 0 0 0 0 0 333 333 0 0 0 333 250 0 500 500 500 500 500 500 500 500 500 500 333 0 0 0 0 500 0 722 667 722 722 0 611 0 0 389 0 0 667 944 722 778 611 0 722 556 667 722 0 0 0 722 0 0 0 0 0 0 0 500 556 444 556 444 333 500 556 278 0 556 278 833 556 500 556 0 444 389 333 556 500 722 0 500 ]\n/Encoding /WinAnsiEncoding\n/Type /Font\n/BaseFont /TimesNewRomanPS-BoldMT\n/LastChar 121\n/FontDescriptor 12 0 R\n/Subtype /TrueType\n>>\nendobj\n12 0 obj\n<<\n/FontBBox [ -558 -307 2000 1026 ]\n/StemV 136\n/Descent -216\n/XHeight -546\n/Flags 34\n/FontStretch /Normal\n/Ascent 891\n/FontName /TimesNewRomanPS-BoldMT\n/Type /FontDescriptor\n/FontWeight 700\n/ItalicAngle 0\n/FontFamily (Times New Roman)\n/CapHeight 656\n>>\nendobj\n13 0 obj\n<<\n/FirstChar 32\n/Widths [ 250 0 408 0 0 833 0 0 333 333 0 0 250 0 250 0 500 500 500 500 500 500 500 500 500 500 278 0 0 0 0 0 0 0 667 667 0 0 556 0 722 333 0 0 0 0 722 722 556 0 0 556 611 0 0 0 0 0 0 0 0 0 0 0 0 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 0 500 ]\n/Encoding /WinAnsiEncoding\n/Type /Font\n/BaseFont /TimesNewRomanPSMT\n/LastChar 121\n/FontDescriptor 14 0 R\n/Subtype /TrueType\n>>\nendobj\n14 0 obj\n<<\n/FontBBox [ -568 -307 2000 1007 ]\n/StemV 82\n/Descent -216\n/XHeight -546\n/Flags 34\n/FontStretch /Normal\n/Ascent 891\n/FontName /TimesNewRomanPSMT\n/Type /FontDescriptor\n/FontWeight 400\n/ItalicAngle 0\n/FontFamily (Times New Roman)\n/CapHeight 656\n>>\nendobj\n15 0 obj\n<<\n/FirstChar 47\n/Widths [ 278 556 556 556 556 556 556 556 556 556 556 ]\n/Encoding /WinAnsiEncoding\n/Type /Font\n/BaseFont /ArialMT\n/LastChar 57\n/FontDescriptor 16 0 R\n/Subtype /TrueType\n>>\nendobj\n16 0 obj\n<<\n/FontBBox [ -665 -325 2000 1006 ]\n/StemV 88\n/Descent -211\n/XHeight 515\n/Flags 32\n/FontStretch /Normal\n/Ascent 905\n/FontName /ArialMT\n/Type /FontDescriptor\n/FontWeight 400\n/ItalicAngle 0\n/FontFamily (Arial)\n/CapHeight 718\n>>\nendobj\n17 0 obj\n<<\n/Length 3133\n/Filter /FlateDecode\n>>\nstream\nh\xde\xd4\x9bK\x8f\xe3\xb8\x11\x80\xef\xfe\x15\xc4\x02\x01\xa4\x00\xe6\x8a\x14II\xa7\x00\xc1\x06\x13\x0c\xb0@\x82\xf1m\xb0\x07\x8f[\xfd\xd8\xf1\xb4:\xb6;\x8d\xfe\xf7\xa9b\x95l\x8bvS\x9e[\n\x03\xd8zR\xf5U\xf1\xf1y\xec\xd6M\xed\xd4\xc3\xe2\xd7O_\x8cz\xd8/\xeaJ\xb7N\x05[\xe9\xe0\x94w\x95\xae\x95\xb3\xba\x0bj\xd7/\xee\x17\x7f_-~]\xad\xac2ju\xbf0VW\xb6\xeeT\x05\xff\xc6\xed\xdaj\xdb\xaa\xe0\xad\x0eV\xad~,*hz\xa9\xab\xcaz\xb5\xda,`\xc3\xa9\xd5\xdb\xe2k\xa1\x1a\xad\x94\xd6\xe5\xb2)\xf4\xfe\xad\\\xb6\xba+\xfa\xfeE\x1d\x1e{u_.M\xad\xdbb[.\x9d6\xc50\xec\xfeV\xfe\xb1\xfa\xbc\xf8\xc7j\x01!r\x84\xbeq\xda\xc6\x00\xbb$\xc0LXU\xd0\xa6\xad\xccy`\xb8\x17\x033\x96#kcd\x1a\x82\n\xda\x17\xeb\xedw5\xbc\x1e\xf6Ow}\xd9\xe9P\xc4\x08\x1f\x87\xd2C\xc0\xaf\xfb^\xc5\xc8\xe01\xa6\xf6\xf8\xc8\xd5o\xb1\xd5\xba\x99\xe2\x1e\x06\xb5V\x9b\xf5N\xbd`\xab\xaeX\x97V\xd7\xc5\xee;\xed\xf5w\xf4\xae\x9e\x80\x1c2^<\xc3;\xee\xe3\xb3\xf8\xdc\xae\x0c\xc5x\xfa\xbf\xf1\xee\xfe-\xee\x9ab\xfd~\xcc\x8f\xa6br\x8al\xa3\x9b\xab5\xfc8E\xde\x03\xe4Y\x8a0Cn\xccP\xe0\x0cu\x94\xa1\x87\xbe\x8c\xcf?\x94X&\xf5\xf4|\x18b\x1c^\xbb\xda\xd9S2\xc6\xfb\xbd\xe7\xfb\x87\x1d\xa6T\rXh\x0f$\x94\x9b+Ev\xad\x1d\t\xc2\xed\x08\xc6M\x10\xaa1|~\xbc\x81LV\xa5)\x8ee6&V$`\x87\x0bP\xe2\xef\nw6@\xd5@\xda;x\x1d\xe0\xf2\xfd\x1e\xc2|Y\xc7 ;\xed\xad1g\xe5\x0e#"\xa7\x08\xaa\x05)\x89\xe5\xad\xb1l^[,*\xee=\xa8-\xed\x0f\xe5\x12FIqP\xd09\x0e\x8ft\xb2\x8f\xf7\xa9\x1f\xa5\x81\xb2\xd2y\xbez\x1b\x8bm\x8b\xeb\xa5v5\xdcm\x7f\xb2\xd6.\xb4p\xf5\xf9X\x181\xac\x1dS\x05\xb5\x84Wx9e\xcbBdx\x18"j \xa0\xef\xea\xf5\x05*\ny\x82\xc0\xef\x867\x1c\xd2\x80ZS]wk`q\xc5\x0b\x1d\xb8R\xe2\xba\xedt\xdb\xfe\xe4@v\xd6\xe86\x9c\xf7Q\xcb\x91W\xdd\xb1\xc8\x10\x9b-\r\xbcj\x9cO`4\x1d\xab\x8d\x04\x81r\x8aC\xeb;t]\xec\x82\xc8\xd0\x15C\x1c\xf8\xb6\x88\xe3\xbd+\xee\xa0\x18\x10\xe1\xf4\x8e-\x8fO\xbe\xf4\x11+\xe5\x0b\xbaaG3\x02t\x9e\xda7\xa7.b\xc6\x19\xc1sn\xfb\xb2-\xd4K?\xbclq\xf6\xabi\x7fW\xe2\x93\x96\xd0\xe5^\x9e\xe8\xf0\x1d\x9f~Wq\x964|\x1af\xa5\x97\xf5\xfe\xa0\xde\x87\xd7\xeb=\xa2v\x90\xf0\xf6\'{D\xddx\x1cigy\x1d{Du\x1a<\xd0\'k\xc8k\xe0.\xb1\xde\x95qR\xea\xcb8\x94\xbf\xbdB\xc1\xb1\xc3\xbe\xf4t\xfc\x0eg\xb5\x00]\x02b\xc0y\xf0\xdb{lbD\x0fpcL\x18\xcc\xf8\xaeqg\xb3F\xc7\x8fn\x1a\x9e6\xd6{\x18\n\x05"+\xaac\x8d\xc9\xa8\xa1\xd9-\xcd\xd5\xdf\xb1G\xc6)\x9a6v\xc3+m<@\xbc\xa6xLN\xf7\xb1\xb4M\xd2\xc866\xed\xaf\xf5U\xdb\xb5\xc7\x9c\xde>\x1f\xd5uu\x96\xd4\x886\xf6V_sV]\xec\xa3-\xf6)\x8d\xd14\xd8i[z\xc3\xbd=.\x85uq\x80\x15r\x88\xf3HL%\xce\xa34\x87\xfa\xe2>\xce\x0f\x90\x9e5\x9fW=\xdf\xb4Y\xc7)\xa4%N\x0b7\xee\xd4\xd8G\x9d7g\x13u5\xa6\x9c\xbbh\x1c\xed\xd0\xc2c\x89\xbd\xfd\t\xb3\x16\xf3\x13;{\xac\xc3z\x07\xdd\x16\x9a\x86\x15q{\xf7\xf4\x1c\x9bmu\xe8\x9a\xe6\xca\xe4\xe8\xb8\x90\x0f\xccP\xd3\xb2\xb8[?\xf1\xdc\xc6S]2_^\xef\xdf\x16\x15#\xfcd\xff\xb6-\x14\xba\x9dLyGd\x7f\x9a\xf2L\xe1K=.\x10\xfb\x98\xf4x4Nk\x812O\xd8t\xfc>\xe6\xc9\xe2;\xce\x88P\x02H\xfe&^\xb1\xc6\x86\xb6k^\x19\xb1\x93\xb7\xf6\xac\x93\xdbn\xea\t\xbb\xd8\xb3]\xcc\xf9R\xc7\x15\xbf\xa3\x9c\xbb\x98\xf3GLM\x80\xa5\xa3\xc6f\xe9\xe4\xdd\xf9\x95\xcfq\x872\xec)\xd6\x97\xf5n\xd3s\x0b{\xb5\x7f\xa5\x13\x9bG\x18\x07\xeb\x03\x85\x15tU\xd7\xe7\xeb\x19F\xf55\x0e5\xbc\xba)`}~~\xa6\xcd\xe1\x80\xc5\xc6\xe6\x02>:\x9e\x1d\xf8\\\\\xc9z\xaahGk\x97\x1bc\x0b1\xb6\xe6\xac\x9e\xa7\x81\x15\x82\xd1\xcdQ7k(\xd9-6\xd7\xc1\xc8\x98H\xa6k\xc7q\xc5\xab@\xd0\xf8d\x98\x95\x14oh\x1a\x12\xbc\x17\x07\x08\x8c$\x1c2\re\x12\xbbv\xc4i\xe2XR\x9bG\xda\x8c}\x14G\xc1N\x1d\xaf\x86\x18\xd7\xe3\xf9(\xad\xb8v\x0fq\xc9\xd9)n{\xc0.\xd3\x16\xb4\x86\xf4\x90\x00\xd0\xa5\xc7\xb1\xadgz\xde\xb5\x8c\xd8\n\xdc\xed4\xd5\xdc\x98\x12\xd8\xd2M\x98\n\xae\x1b\x87_0\xdc\xc3\x03O6m\x9cl\xd0\xddb>L\xc1{\xd8\x05C\xb1\xde\xf2Z\x89\xfe\x8b\x900\\#T\x83\xf5\x8c+$\x1d\xed9_5\xf9+\xde\xb2\x89\xc3\xe2]\x9d\xae\x8f\x87\xef\xa2\xb2\x1a\x9a\x88X\xb7,\xcd\xda\\\x8cf:\xedV\xea\x13\xbc\x7f\x86\x8f\x1b\x7f*\xa3\xab\xa6So\xcaT\xeaw\xf5\xf5\x8fJ\xdd\xc1\xa9\'\xb5\xf8\x8f2\x94\t\x10?\r\xb3\x19\xa8\x9fvj\xf3#\x1e\xc44\xc0\xdc\xe0\x14$\x1a\x12\x01+\x14l\x82\xbc\xd0\xd6f\x81K+\xef\xe0\x14\x04}\x90\xae\xa6\xed\n\xaf\xa0\xcd%\x1do\x8f\r\x9c^\xe0\x9a\xd8x\xdc\xa9\xf8\xca*\xde\xfc\xed\xaf\x8b\x7f\xf3g&\xf7\xf1g&\xef\xb0\xd4\xa1\x89\nw.\xad\x15\x16\xac\xa8\xfeR\xae\xfe\x1c3r\xa25\x15\xcc\x01\xee\xff\x12\xf7\x1a\xa4\x81\xcf^)da\xaa\xebhXIAhP\xc0\x0b4\xfb\x01Z\xd7IB\xb3\x95\xbdD\xab\xaf\xa3Y\x07\x8b\x9f\x1c2_\xe1G\x88\x04\xcd}\x80\xd6yIh\xa0\xa9\x97h\xfe:\x1a~N\xb0A\x0c[\xed\xc0mm\xca\x16>`\xeb\x8c(\xb6\xce]ak\xae\xb39X\xea\x05\xb19T\xf4\x0b\xb6\xf6\x03\xb6\xb6\xc1\xab\xc4\xb0u\x15~\xaaH\xd8\xba\xebl\xbe\xf6\x92\xd8<xbwe\xdd\xfe@JX\xc1\xa0ov\x12\xe0H\xbc\xa0"\xed\x89mF\xb7\x84\xa0\xb1nM\xd1ftK\n\x1a\xe9\xd6\x14mF\xb7\x84\xa0\xb1nM\xd1\xf2\xba%\x85\x8cuk\x8a\x96\xd7-)h\xac[S\xb4\x19\xdd\x12\xc26\xea\xd6\x94mF\xb7\xa4\xb0\xb1nM\xd9ftK\x08\xdb\xa8[S\xb6\x19\xdd\x92\xc2\xc6\xba5e\x9b\xd1-)F\xc2\xba\x95\xae\xdbY\xdd\xf2\x1d\xa8\x89\x18\xdd\xf2m\x87\xff\x99y\x9bnIA#\xddJ\xd0\xf2\xba%\x06-\xeaV\x82\x96\xd7-)h\xa4[\tZV\xb7\xc4\x90\x91n%hY\xdd\x12\x83F\xba\x95\xa0\xe5uK\n\x1b\xebV\xc2\x96\xd7-1l\xa4[\t[^\xb7\xa4\xb0\xb1n%ly\xdd\x12\xc3F\xba\x95\xb0\xe5uK\x8c\x91\x90n]\xac\xdby\xdd\xc2A*G\xb7\xa0k\xb6\xf6\xf4\x95\xf0\x9cp\t\x81c\xe1J\xe1f\x94K\n\x1c)W\n7#]B\xe0X\xbaR\xb8\xbcvIac\xedJ\xe1\xf2\xe2%\x05\x8e\xc5+\x85\x9bQ/!t\xa3z\xa5t3\xf2%\x85\x8e\xe5+\xa5\x9b\xd1/!t\xa3~\xa5t3\x02&\x85\x8e\x05,\xa5\x9bQ0)\x96\xc2\nv\xb9\x92\xe7%\xac2\xdaY1\x16\xe6\xba\x06\x7f\x9fw\xa3\x83Ia#\tK\xd8f\x14L\x0c[t\xb0\x84m\xc6\xc0\xa4\xb0\x91\x82%ly\x01\x13\x83F\x06\x96\xb0\xe5\xfdK\x0c\x1b\tX\xc26\xa3_R\xe0\xd8\xbf\x12\xb8\x19\xfb\x12\x03G\xfa\x95\xc0\xcd\xc8\x97\x148\xb6\xaf\x04n\xc6\xbd\xc4\xc0\x91|%p3\xea%\xc6M\xc8\xbd.\x16\xf0\xacy9\xef\xb5\tr\xcc\x0b\xa2\xaen5/1ll^S\xb6\xbcy\xc9a#\xf3\x9a\xb2\xe5\xcdK\x0c\x1b\x9b\xd7\x94-k^r\xd0\xd8\xbc\xa6lY\xf3\x92\xc3\xc6\xe65e\xcb\x9b\x97\x18\xb8\xd1\xbc\xa6py\xf3\x92\x03\xc7\xe65\x85\xcb\x9b\x97\x18\xb8\xd1\xbc\xa6py\xf3\x92\x03\xc7\xe65\x85\xcb\x9b\x97\x1c7a\xf3J\x17\xf0\xbcyU\x8d\xa0\xdfy\xb9*\xfeQ\xf6\x8d\xe2%\x04\x8d\xbdk\x8a6\xe3]R\xd0H\xbb\xa6h3\xda%\x04\x8d\xadk\x8a\x96\xb7.)d,]S\xb4\xbctIAc\xe7\x9a\xa2\xcd8\x97\x10\xb6Q\xb9\xa6l3\xca%\x85\x8d\x8dk\xca6c\\B\xd8F\xe1\x9a\xb2\xcd\x08\x97\x146\xf6\xad)\xdb\x8coI1\x12\xd6\xadt\xdd\xce\xeaV\x1d\x8c\xf6bt\xab\xf6\r\xfe\xa7\xe3m\xba%\x05\x8dt+A\xcb\xeb\x96\x18\xb4\xa8[\tZ^\xb7\xa4\xa0\x91n%hY\xdd\x12CF\xba\x95\xa0euK\x0c\x1a\xe9V\x82\x96\xd7-)l\xac[\t[^\xb7\xc4\xb0\x91n%ly\xdd\x92\xc2\xc6\xba\x95\xb0\xe5uK\x0c\x1b\xe9V\xc2\x96\xd7-1FB\xbau\xb1n\xe7u\xcb\x04\xfc\x11\xbe\x18\xdf2F\xb7\xb7~\xaf(\x86\x8d\x85k\xca6#\\b\xd8\xc8\xb8\xa6l3\xc6%\x85\x8d\x95k\xca\x96W.1h\xec\\S\xb6\xbcs\x89ac\xe9\x9a\xb2\xcdH\x97\x14\xb8\xd1\xba\xa6p3\xd6%\x06\x8e\xb5k\n7\xa3]R\xe0F\xef\x9a\xc2\xcdx\x97\x188\x16\xaf)\xdc\x8cx\x89q\x136\xaft\x01\xcf\x9a\x97\r\x9dn\xe4\xfc\xa2\xcb\x06\xafC{\xf3_4\x8a\xa1#\xf7\xba\xa0\xcb\xdb\x97\x1c\xbah_\x17ty\xff\x12CG\xfeuA\x97509pd`\x17tY\x07\x93CG\x0evA\x97\xb701xla\x17xy\x0f\x93\x83G\x1ev\x81\x97711xlb\x17xy\x17\x93\x83G.v\x81\x97\xb719\xbeB6veI\xcf\xfb\x98\x85\xc7\xb4r|\xcc\x1a\xed\xaa\xdb}L\n\x1d\xfbXJ7\xe3cb\xe8\xc8\xc7R\xba\x19\x1f\x93B\xc7>\x96\xd2\xe5}L\x0c\x1c\xfbXJ\x97\xf711t\xecc)\xdd\x8c\x8fI\xc1\x1b},\xc5\x9b\xf111x\xecc)\xde\x8c\x8fI\xc1\x1b},\xc5\x9b\xf111x\xecc)\xde\x8c\x8f\x89\xf1\x15\xf6\xb1\xcb%\x9d\x94\xc5\xd4\xba\x0b`4\xf1\x1e\xde\xae\x8d\x0eV5pK\x15\xbf\xca\\\xea\xaa\xf2N R\n>>\n/ProcSet [ /PDF /Text ]\n>>\nendobj\nxref\n0 19\n0000000000 65535 f \n0000000009 00000 n \n0000000074 00000 n \n0000000175 00000 n \n0000000224 00000 n \n0000000365 00000 n \n0000000508 00000 n \n0000004748 00000 n \n0000004880 00000 n \n0000004967 00000 n \n0000005168 00000 n \n0000005423 00000 n \n0000005890 00000 n \n0000006160 00000 n \n0000006616 00000 n \n0000006880 00000 n \n0000007085 00000 n \n0000007328 00000 n \n0000010535 00000 n \ntrailer\n<<\n/Size 19\n/Root 3 0 R\n/Info 2 0 R\n>>\nstartxref\n10668\n%%EOF\n' (<type 'str'>)

1 个答案:

答案 0 :(得分:1)

目前Django不支持在数据库中存储二进制数据。我想你用其他方式插入了数据。只要您在包含二进制数据的模型上调用save(),就会获得UnicodeDecodeError例外。

无论如何,正如您在评论中所述,使用QuerySet.update有效(因为此字段的值未提交到数据库)。如果您的模型具有自动生成的id AutoField,您可以尝试这样的解决方法:

ABC.objects.filter(pk=obj.pk).update(pdf_printed='1')