2012-02-26 15 views
0

これは時間が重大なバグです。それ以外の場合はここには載っていないでしょうし、これも私の最初の試みです。Pythonの文字列書式設定エラー

私はDjangoのアプリでエラー

%o format: a number is required, not str 

を取得しています。それがエラーを示して場所:(私はメッセージの文字列を作成しようとしています)

msg_donor = 'Dear %s,\nThank you for contributing to %s \'s fundraising campaign 
on Milaap.org. You\'ve made our day.\nRemember, since this is a loan, and not 
donation, 100% of your money will come back to you!\nYou will shortly receive 
your milaap login details. You can check who your money has gone to and track 
your repayments through your account. Be sure to sign up and check your account 
regularly for updates.\n\n%s' % (d.name, c.fundraiser_name, regardsStr) 

私は自分のアプリケーションアンディ内の任意の%0を書いていないが、このエラーを生成することができるか疑問に思って?

答えて

1

あなたの文字列に100% of your moneyがあります。 %は書式設定文字です。リテラル%を入れるには100%% of your moneyを使用してください。

(私はPythonが%o間の空間にスキップすることを一種のびっくりだけど、何でも。)

+0

です。私は前にそれを理解したことはありませんが、あなたは正しいです。その間に空白があることは明らかです。 – jdi

+0

問題は何か他にもあると思います。なぜなら、たとえそれを前に置いてその行をコメントしても、同じ行にエラーが表示されるからです。 – rtcoms

+0

これは、実行していると思われるコードを実行していないことを意味します。 Djangoは何かをキャッシュしていますか? Djangoにコードをリロードするよう指示する必要がありますか? –

0

問題がであなたの文字列に浮遊%によって原因であるさ:100%

とき

msg_donor = """Dear %s,\nThank you for contributing to %s's fundraising campaign 
on Milaap.org. You've made our day.\nRemember, since this is a loan, and not 
donation, 100%% of your money will come back to you!\nYou will shortly receive 
your milaap login details. You can check who your money has gone to and track 
your repayments through your account. Be sure to sign up and check your account 
regularly for updates.\n\n%s""" % (d.name, c.fundraiser_name, regardsStr) 
:あなたは、あなたはこれを試してみてください %%

を行うことによってリテラル%をエスケープすることを確認するために、文字列の書式を持っています実際に興味深いのは、

+0

問題は何か他のものだと思います。なぜなら、たとえそれを前に置いてその行をコメントしても、同じ行にエラーが表示されるからです。 – rtcoms

+0

それでは、十分なコードを投稿していないのは、あなたの例でそのエラーが発生していて、私と@ Gregの回答 – jdi

関連する問題