2010-12-10 17 views
3

もう1つの役に立たないエラーが原因でこの問題を解決しようとしています。django-admin:saveメソッドをオーバーライドするときに "super()引数1は型でなければなりません"

私は最近まで働いていたモデル 'CompanyProfile'を持っていましたが、現在管理者からモデルを保存しようとすると、Object参照がnullであると私に伝えているようです。私はこれをどのように並べ替えるのか分かりません。

私はいつものようにすべてをやっている:

def save(self, force_insert=False, force_update=False): 
    super(CompanyProfile, self).save(force_insert, force_update) 

私は、サーバーを再起動しましたが、ジャンゴを再インストールには、データベース、およびまだ運をクリア。誰もが以前にこのアイデアを持っていたことがありますか?

+0

私は 'CompanyProfile'がモデルクラスの正しい名前であると仮定しますか?上のコードスニペットを削除すると機能しますか? –

+0

奇妙なオーバーライドされた保存メソッドを削除した場合、名前は正しいです。私自身の無能とは対照的にバグかもしれないと思います! –

+0

あなたはたぶんスタックトレースも投稿できますか? –

答えて

4

多分、それは周期的なインポートの問題ですか? http://markmail.org/message/zothlfayqkbidqfh#query:+page:1+mid:3cnpcw3e4cgo3cas+state:results

ここの例では、彼は原因を示す信号にインポートステートメントを持っていました。

同様の現象についてglobals()をチェックすることができます..

+0

私はこのエラーをもう一度受けて、私が決して受け入れなかったこの答えに戻りました!ありがとう –

+0

@pastylegsあなたはおなじみの顔をdjango Qの今の面白いです:)私はほとんど昨年もあまりにもアクティブだったように見えます。 –

1

あなたがモデルのメソッドをオーバーライドするとき引数/ kwargsからを使用する必要があります。http://docs.djangoproject.com/en/dev/topics/db/models/#overriding-model-methods

それはあなたが がモデルのメソッドに渡すことができる引数を通じて を渡すことも重要です - それは何* argsを です、** kwargsビットがあります。 Djangoは時々、組み込みモデル メソッドの機能を に拡張し、新しい引数を追加します。 * args、**あなたのメソッド 定義の** kwargsを使用すると、 コードが自動的に これらの引数を追加する際にそれらの引数をサポートすることが保証されます。

+0

いいえ、あなたはそうする必要はありません - あなたはすべきですが、これがsuper()の引数に影響する方法はありませんか? – lqc

1

save()オーバーライドの例をthe docs hereから試してください。 *args, **kwargsの使用に注意してください。それがうまくいかなければ、何かが重大なものになります。

0

簡単な推測ですが、このSaveメソッドはCompanyProfileモデルクラスの一部であり、インデントは正しいですか?

関連する問題