私はユニコードの性質を漠然と熟知していますが、どのようにすべての作品が合っているかわかりません。管理ページに特定のインスタンスを表示するときにエラーが発生しました。ここで管理ページのdjango unicodeエラー
Caught UnicodeEncodeError while rendering: 'ascii' codec can't encode character u'\u2019' in position 29: ordinal not in range(128)
は私のモデルです:
class Proposal(models.Model):
project = models.ForeignKey(Project)
dateCreated = models.DateTimeField(editable=False)
xml = models.TextField(max_length=1000000)
def __str__(self):
return str('Proposal for: %s' % self.project.name)
私はmysqlデータベースに入ったとDB、テーブル、および列はすべてutf8_unicode_ci内と照合されているので、なぜ私は理解していないことを確認しましたページはasciiとしてレンダリングしようとしています。さまざまなフォーラムやドキュメントを見ると、strとユニコードの機能が表示されていますが、インスタンスのリストが管理ページに表示されているため、これと関係がないようです。問題を引き起こす実際のインスタンスフォームを表示しているだけです。
ここで私はphpMyAdminのから引き出されたいくつかの例のXMLは、私も、意図的に私はそれをみたいので、私は長期的に行うことができないXMLを(除外しようとした...
<?xml version="1.0" encoding="UTF-8"?>
<proposal>
<section title="OVERVIEW">
<section title="Introduction">
<text>
This proposal is not in the system because it was completed as an agreement in Word previous to us getting this application up and running. Please refer to the attachments in this project for documentation or to see the agreement.
</text>
</section>
</section>
</proposal>
です管理セクションで編集可能ですが)、私はまだ同じエラーが出ますので、xmlも問題ではないと確信しています。 xmlが問題ではない場合は、このページが表示されないように他に何ができるかわかりません。
class ProposalAdmin(admin.ModelAdmin):
exclude = ('xml',)
admin.site.register(Project)
ありがとうthe encode()trick - ps: 'encode( 'ascii'、 'replace')' –
@Yuji Tomita、あなたはそれを両方の方法で呼ぶことができます。キーワードの引数やもの:http://docs.python.org/reference/expressions.html#calls –
'encode()'はキーワード引数をとりません - 少なくとも2.6の場合 –