問題タブ [django-managers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - カスタムマネージャを使用してdjangoでオブジェクトを作成する目的は?
私はDjangoのドキュメントで見ます:
__init__
メソッドをオーバーライドしてモデルをカスタマイズしたくなるかもしれません。ただし、変更するとモデル インスタンスが保存されなくなる可能性があるため、呼び出し元の署名を変更しないように注意してください。
をオーバーライドするのではなく、__init__
次のいずれかの方法を試してください。
- モデル クラスにクラスメソッドを追加します。
- カスタム マネージャーにメソッドを追加する(通常は推奨)
2番目の解決策が「通常好まれる」のはなぜですか?
リレーションを介してモデルB
を拡張するモデルがあり、対応するオブジェクトも生成するオブジェクトを生成するメソッドを作成したい状況では、提案されているようにカスタムマネージャーを使用するのが「より良い」方法です。おそらく、このマネージャは、デフォルトのマネージャによって提供されるもの以外には使用しないでしょうか?A
OneToOne
B
A
django - Djangoで関係アイテムをフィルタリングするには?
2つのモデルクラスがあるとしましょう。カテゴリには名前と複数のタグがあり、タグには名前があり、表示または非表示にすることができます。
編集: カテゴリのリストがあり、カテゴリごとに、visible=True を持つタグのみを表示したいとしましょう。どうすればよいですか?
python - 新しいレコードを作成する前にフィールドを処理するためのカスタムマネージャのCreate_user()またはDjangoカスタムユーザーモデルのsave()メソッド?
self.pk が None であることをテストする save() メソッドを持つ Django カスタム ユーザー モデルがあり、新しいユーザー レコードを作成する前にフィールドに追加の処理を行います。これは、それを置くのに適切な場所ですか、それとも、カスタム ユーザー マネージャーの create_user() メソッドに入れることになっていますか? 違いはありますか?
python - Django カスタム ユーザー マネージャーでは、create_user と _create_user() の違いは?
Django カスタム ユーザー マネージャーのチュートリアルを実行しようとしています。それらのほとんどは、ドキュメントに記載されているように create_user() と create_super_user() をオーバーライドしますが、このチュートリアルではこれら 2 つのメソッドをそのままにして、代わりに _create_user() をオーバーライドします。
http://www.caktusgroup.com/blog/2013/08/07/migrating-custom-user-model-django/
これは正しいです?_create_user() と create_user() のオーバーライドの違いは何ですか?
django - django: Manager で ForeignKey _id-Field にアクセス中に予期しないキーワード引数を取得しました
次のようなモデルがあります。
manager には、誰かがすでに別のユーザーのメンターであるかどうかを確認する関数がありclean()
、インスタンスの実行中に呼び出されます。
mentor_id
ただし、存在するormentee_id
属性にアクセスしている間は常に例外が発生します。
manager 内の _id フィールドにアクセスできない理由はありますか? (保存されていない)インスタンスではフィールドにアクセスできるのに、マネージャーではアクセスできない理由がわかりません。
python - 日付が未来に設定されている場合、start_date と end_date のモデル マネージャが機能しない
パブリッシュされたすべてのエントリを取得するモデル マネージャを作成しようとしていますが、start_date は の過去ですnow
。奇妙なことに、日付を過去 (1 分前) の値に設定するとすべてが機能しますが、将来 (1 分前) の日付を設定すると、さらに待ってもオブジェクトが表示されません。テストに1分以上。サーバーを再起動するだけで、エントリが表示されます。しかし、エントリを公開するたびにサーバーを再起動することはできません。
このコードの何が問題なのか、誰にもわかりますか? または、これは別の方法で行うことができますか?
私の見解は次のとおりです。
編集:
ビューのnow = timezone.now()
定義内に移動すると、正しい公開エントリが取得されます。なぜ正しいものが表示されないのですか?entries_published
CategoryDetail
EntryListView
これが私のCategoryDetail
見解です
2を編集します。
私EntryListView
がこれに変更した場合:
すべてが機能します。奇妙ですが、私は気にしません。
django - 子モデルのフィールドに基づいてモデルをフィルタリングするにはどうすればよいですか?
次のモデル構造があります。スライスされたためにローフが在庫にないかどうかを確認するように InventoryManager を変更することは可能ですか?
get_shipment メソッドを使用したかったのですが、フィールドではありません。成功せずに次のことを試しました
読んでくれてありがとう!
django - timezone.now().date は関数ですか、それとも呼び出し可能ですか?
私は Django 1.5 でマネージャーを書いています。QuerySet
今日または将来の開始日を持つオブジェクトを含むを返したいです。以前の問題に対するこの回答に基づいて、マネージャーは関数ではなく呼び出し可能オブジェクトを使用する必要があると思います。私は書いた:
私はそのコードを、その値をdate
関数 ( ) に依存する呼び出し可能 ( ) として読みました。timezone.now()
しかし、Django はそれを callable または function として扱いますか?
オブジェクトを作成して明日まで待つことでこれをテストできることは知っていますが、これを完全に理解したいと思います。