問題タブ [django-signals]

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.

0 投票する
1 に答える
267 参照

python - Djangoのモデルで動的に計算された属性を処理するにはどうすればよいですか?

Django では、地理的オブジェクトのブレッドクラム (父親のリスト) を計算します。頻繁に変更されることはないので、オブジェクトが保存または初期化されたら、事前に計算することを考えています。

1.) 何が良いでしょうか? パフォーマンスが向上するソリューションはどれですか? ____init____で計算するか、オブジェクトが保存されたときに計算しますか(オブジェクトはDBで約500〜2000文字かかります)?

2.) ____init____ または save() メソッドを上書きしようとしましたが、保存したばかりのオブジェクトの属性を使用する方法がわかりません。*args、**kwargs へのアクセスが機能しませんでした。どうすればアクセスできますか? 保存して父親にアクセスし、再度保存する必要がありますか?

3.) ブレッドクラムを保存することにした場合。それを行う最良の方法は何ですか?http://www.djangosnippets.org/snippets/1694/を使用し、crumb = PickledObjectField() を使用しました。

モデル:

それが属性crumb()を計算する方法です

それは私の保存方法です:

私を助けてください。私はこれに何日も取り組んでいます。ありがとうございました。

0 投票する
1 に答える
5045 参照

django - Django:DjangoAdminの一意の外部キーを持つUserProfile

と呼ばれるカスタムユーザープロファイルを使用して、Djangoのユーザーモデルを拡張しましたUserExtension。これは、独自の外部キー関係を介してユーザーに関連付けられているため、管理者でインライン形式で編集できます。シグナルを使用して、すべての新しいユーザーの新しいプロファイルを作成しています。

(ここで説明するように、たとえば:Djangoのカスタムフィールドを使用したユーザーモデルの拡張)問題は、管理者を介して新しいユーザーを作成すると、「列user_idは一意ではありません」の保存時にIntegritiyErrorが発生することです。シグナルが2回呼び出されているようには見えませんが、管理者がプロファイルを後で保存しようとしていると思いますか?ただし、システムの他の部分で新しいユーザーを作成する場合は、シグナルによる作成が必要です。

0 投票する
1 に答える
6138 参照

django - シグナルを使用した django-registration の拡張

ここで、スタックオーバーフローで、シグナルを使用して新しいフィールドで django-registration を拡張するソリューションを見つけました。リンクは次のとおりです: http://dmitko.ru/?p=546 .
拡張プロファイル モデル、拡張フォームを作成し、設定に必要なオプションを追加し、URL を定義し、適切なフォームが表示されますが、(認証モジュールからの) 通常のユーザーのみが作成されます。なぜそれが起こっているのですか?

アカウント.モデル:

他のモデルが同じフィールドを使用するため、この InheritedProfile を抽象化する必要があります。

アカウント.フォーム

設定に追加されたオプション:

最後に、これは登録信号がどのように見えるかです:

編集: user_created のインデントは、変更を試みるまで何も変更しません

今、私は取得していました:
" SMTPServerDisconnected
Exception Location: /bin/python-2.6.1/lib/python2.6/smtplib.py in getreply, line 340 "
トレースバック:

現時点ではダミーのメール バックエンドを使用していますが。登録時にメール送信機能をコメントアウトすると、この問題は解決しましたが、まだ拡張ユーザーが作成されていません。

0 投票する
2 に答える
421 参照

django - 登録時にユーザーのアバターを保存する

新しいユーザーを登録するための拡張UserProfileがあります。私のuser_created関数は、基本的なUserインスタンスの登録時に送信されるシグナルに接続し、フォームの拡張フィールドを使用して新しいUserProfileを作成します。コードは次のとおりです。

問題は、このフォームにアバター用の画像フィールドがあることです。コードからわかるように、フォームのデータリストからデータを取得しています。しかし、どうやらimageFieldはPOSTリクエストでデータを送信しないので(私が取得しているようMultiValueDictKeyError at /user/register/Key 'image' not found in <QueryDict...)、data[]からデータを取得することはできません。

代替テキストhttp://img38.imageshack.us/img38/3839/61289917.png 通常の変数が「data」内にある場合、どこでファイルを探す必要がありますか?それとも問題はもっと複雑ですか?奇妙なことに、私のフォームには、cleaned_data属性がありません...ここでdmitkoのメソッドを使用していました:http ://dmitko.ru/?p = 546&lang=en 。私の:
フォーム: http: //paste.pocoo.org/show/230754/
モデル: http: //paste.pocoo.org/show/230755/

0 投票する
2 に答える
468 参照

django - シンプルなフォームが検証されていません

ここで、スタックオーバーフローで、シグナルを使用して django の組み込み認証を拡張する方法を見つけました。私の基本ユーザーは「電子メール」とパスワードで定義されています(したがって、ユーザー名はありません)。そのため、必要に応じて変更しようとしていますが、フォームの検証エラーが発生しています。奇妙なことは、エラーが User.email フィールドに接続されており、現在登録したばかりなのに「既に使用中」になっていることです。それを2回保存しようとしていますか?shell: でフォームのコンストラクターにデータを含む辞書を送信していたときに発見しましたform = MyForm(data={})。このフォームはまだ無効でしたが、電子メールを別の値に変更すると、最終的にTrueになりました。

登録信号に接続された user_created 関数:

私のフォーム:

私のモデル:

登録フォーム : class RegistrationForm(forms.Form):

0 投票する
5 に答える
7818 参照

django - Django: モデルが更新される前に、以前の属性を「見て」みたい

Django モデル ( .save()) で更新/作成が実行されるとき、特定の属性を「ステップイン」して、以前に設定されたものと比較できるようにしたいと考えています (以前に存在していた場合)。

Pre-Save Signalsを考えており、元のモデルを参照して を実行しています.objects.get(instance.id)が、それは無駄に感じます。また、検証はすでに行われていpre_save()ますか?

0 投票する
1 に答える
838 参照

django - Django 組み込みシグナルの問題: post_save 使用時のエラー

新しいThreadedCommentsが表示されたときにユーザーに通知するアプリを構築しています。このために、私はpost_saveシグナルを使用しています。これが私のものmodels.pyです:

問題は、新しい ThreadedComment が作成されるときにエラーが発生することです: unbound method _get_pk_val() must be called with ThreadedComment instance as first argument (got nothing instead). トレースバックとデバッガーは、BuzzEvent オブジェクト呼び出しの作成時に発生すると言いますsignals.pre_init.send。現在、django コードをハックできません。明らかな解決策やアイデアはありますか?

0 投票する
2 に答える
468 参照

django - Djangopre_saveシグナルはすべての派生クラスで機能しますか

他のいくつかのクラスによって拡張されるモデルクラス「アクション」があります。私はdjangoを初めて使用し、pre_save.connect(actionFunc、sender = Action)を呼び出すと、Actionクラスのsaveメソッドが呼び出されるたびに(派生クラスを含む)、actionFuncが呼び出されると想定しました。

私の観察では、この関数は、インスタンスがSenderで定義されたクラスタイプと直接一致する場合にのみトリガーされます。アクションのすべての派生インスタンスのシグナルを受信するためにこれを取得する方法はありますか?

0 投票する
2 に答える
1792 参照

django - Django admin でユーザーがアクティブ化されたときにメールを送信する

特定の人だけが登録できるように、登録を監視するサイトを作成しようとしています。間違いなく、登録フォームの上に私が書いたにもかかわらず、いくつかの不適合が登録されるので、私たちは節度を持って行きます.

登録するdjango.contrib.auth Userと、プロフィールが作成され、モデレーターにメールが送信されます。モデレーターは Django 管理サイトにログインし、登録が許可されている人物であることを確認し、アカウントを有効にします。彼らが不正に侵入しようとしている場合、アカウントは削除されます。

recaptcha を使用して、自動試行を停止しようとします。

アカウントがアクティブ化または削除されたときに、アカウントの所有者に、アカウントに何が起こったのか、ログインできること、または現在何をしているのか、何をすべきかを知らせるメールを送信したいと考えています。ばかげているのをやめなさい。

これは信号と関係があると思われますが、django.contrib.auth.

ヒント、手がかり、またはコードはすべて親切に受け入れられます。

0 投票する
1 に答える
76 参照

python - Manytomany リレーションが作成されたときにコスチューム信号を作成する方法はありますか? ジャンゴ!

ManyToMany リレーションが作成されたときにカスタム シグナルを作成する方法はありますか?