[解決済み] モデルインスタンスからマネージャにアクセスできない
質問
モデルオブジェクトのインスタンスを別のモデルで取得しようとしているのですが、次のようなエラーが発生しました。
Manager isn't accessible via topic instance
これが私のモデルです.
class forum(models.Model):
# Some attributs
class topic(models.Model):
# Some attributs
class post(models.Model):
# Some attributs
def delete(self):
forum = self.topic.forum
super(post, self).delete()
forum.topic_count = topic.objects.filter(forum = forum).count()
以下は私の見解です。
def test(request, post_id):
post = topic.objects.get(id = int(topic_id))
post.delete()
そして、私は得る。
post.delete()
forum.topic_count = topic.objects.filter(forum = forum).count()
Manager isn't accessible via topic instances
どのように解決するのですか?
問題のエラーは、(1) のように
Manager
にアクセスしようとしたときに起こります。あなたは
小文字
というクラス名を使用しています。このため、エラーがインスタンスから
Manager
にアクセスしたために発生したエラーなのか、そうでないのかを判断するのは困難です。このエラーを引き起こす可能性のある他のシナリオが不明なため、私は、あなたが何らかの方法で、topic
変数のインスタンスを指すようになってしまったのでしょう。
topic
モデルのインスタンスを指すようになります。
この行が犯人です。
forum.topic_count = topic.objects.filter(forum = forum).count()
# ^^^^^
を使わなければならない。
forum.topic_count = Topic.objects.filter(forum = forum).count()
# ^^^^^
# Model, not instance.
何が問題になっているのか?
objects
は
Manager
はインスタンスではなく、クラスレベルで利用可能です。を参照してください。
のドキュメントを参照してください。
を参照してください。お金の見積もり
Managers
はアクセス可能です だけ は、モデルインスタンスからではなく、モデルクラスを通して、テーブルレベルの操作とレコードレベルの操作の間に分離を強制します。
(強調)
更新
以下の @Daniel のコメントを参照してください。クラス名にタイトルケースを使用するのは良いアイデアです (いや、使わなければなりません :P)。たとえば
Topic
の代わりに
topic
. クラス名は、インスタンスを指しているのか、クラスを指しているのか、混乱させます。そのため
Manager isn't accessible via <model> instances
は非常に特殊であるため、私は解決策を提供することができます.エラーは常にそれほど自明ではないかもしれません。
関連
-
AttributeError: 'str' オブジェクトには 'decode' という属性がありません。
-
[解決済み] Djangoでファイルをアップロードする方法は?[クローズド]。
-
[解決済み] pipと要件ファイルを使って、特定のパッケージをアップグレードするにはどうすればよいですか?
-
[解決済み] Django のカスタムフィールドで User モデルを拡張する
-
[解決済み] django-rest-framework の管理者スタイルのブラウズ可能なインターフェイスを無効にする方法は?
-
[解決済み] Django Southを使用して移行履歴をリセットするための推奨される方法は何ですか?
-
[解決済み] Django admin: データベースフィールドを持たないカスタム list_display フィールドの1つでソートする方法
-
[解決済み] DjangoでSELECT COUNT(*) GROUP BYとORDER BYを行うにはどうすればよいですか?
-
[解決済み] list_display - メソッド用のブール型アイコンです。
-
[解決済み] Django で https 接続を非 https 接続と同じように簡単にテストするには 'runserver' を使うには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ImproperlyConfiguredです。INSTALLED_APPS の設定を要求されたが、設定されていない
-
[解決済み] django の OneToOneField と ForeignKey の違いは何ですか?
-
[解決済み] Django South - テーブルはすでに存在する
-
[解決済み] Django - 外部キーのプロパティでフィルタリングする
-
[解決済み] Djangoのデータベースクエリ。id でオブジェクトを取得するには?
-
[解決済み] 学習に適したオープンソースのdjangoプロジェクト【非公開
-
[解決済み] egg_infoエラーでpipからインストールできない
-
[解決済み] Djangoのクッキー、どうすれば設定できますか?
-
[解決済み] Django: Django のアプリを完全にアンインストールするには?
-
[解決済み] RESTful API のトークン認証:トークンは定期的に変更する必要がありますか?