問題タブ [django-comments]
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:複数のコメントフォーム/モデルのカスタマイズ
このシナリオでは、2つ以上のモデルがあります。
これらはそれぞれ異なるコメントモデル/フォームを必要とします。例えば:
- 製品コメント製品の評価、長所、短所などの追加情報が欲しいのですが。
- ただし、ストアについては、カスタマーサポートの料金、コミュニケーション/応答の料金、送料が妥当な場合のブール値などのフィールドが必要です。
これらのモデルは両方とも、contribコメントモデルをサブクラス化するため、既存のadminタグとcommentsテンプレートタグと互換性があります。
ただし、Djangoの組み込みのコメント設定はかなり厳格であり、get_model()メソッドとget_form()メソッドを使用して1つのモデル/フォームをカスタマイズすることしかできません。
どちらの場合も別の方法を使用して正しく機能していますが、コードの重複が多く、3番目または4番目のタイプのコメントサブクラスを追加する場合は実用的ではありません。
誰かがこれを行うためのより良い方法を知っていますか?StackOverflowを検索してみましたが、このユースケースに似た結果は得られないようです。
django - Django コメントを Django ユーザーとリンクする
ユーザーが私の投稿にコメントできるようにするために、組み込みのコメントで Django を使用しています。また、次のことを行うようにアプリをカスタマイズしました
- 登録ユーザーには、コメントのテキスト領域のみが表示されます
- 未登録ユーザーにはフォーム全体が表示されます
全体は正常に動作していますが、ユーザーのコメントをユーザーのプロフィールにリンクする方法がわかりません。そのコメントを投稿したユーザーのプロフィールに移動できるように、コメント名をクリックできるようにしたいと考えています。
ただし、未登録のユーザーの場合は、名前をそのまま表示したいだけです。現在のユーザーとリンクするように、コメントフォームのどこでどのように変更を加える必要がありますか。
django - djangoでコメントカウントを介してエントリを注文する
コメント数のあるデータベースからエントリを取得する必要があります。djangoのコメントフレームワークでそれを行うことはできますか?GenericForeignKeysを使用していない投票アプリケーションも使用しています。次のようなスコアのエントリを取得します。
しかし、外国の鍵があるとき、私は立ち往生しています。それについて何かアイデアはありますか?
追加の説明:次のようなエントリをフェッチする必要があります:
その後、comment_scoreで注文できます。:)
すべての返信に感謝します。
django - djangoコメントフレームワークのアンチスプーフィングはどのように機能しますか?
django コメント フレームワークでは、CommentSecurityForm には、一般的に使用される CSRF toekn に加えて、「なりすまし防止」の目的で「timestamp」および「security_hash」フィールドが含まれています。それはどのような安全価値を持っていますか?一般的な外部キー (content_type および object_id 隠しフィールドを含む) を使用してフォームを作成する必要がありますが、安全性を向上させるために同じメソッドを実装する必要がありますか? もしそうなら、この問題に関する良い読み物はありますか? 助けてくれてありがとう!:)
django - django-mptt-コメントアプリエラー
django-mptt-comments
djangoプロジェクトでアプリを使用しようとしていますが、コメントを投稿しようとすると問題が発生します。
エラーが発生します:AttributeError: 'NoneType' object has no attribute 'level'
トレースバックは次のとおりです:https ://gist.github.com/1481179
トレースバックで、93行目のapppのform.pyでエラーが発生していることがわかります。コードは次のようになります。https ://gist.github.com/1481191
誰かがこの問題を引き起こしている可能性があるものと、それを修正する方法を教えてもらえますか?ありがとう。
python - カスタム django コメント管理スロット
そのため、ブログ アプリケーションに Djangos の組み込みコメント アプリ (django.contrib.comments) を使用しています。フォームの表示などにいくつかの変更を加えました (ドキュメントに記載されているとおり)。最後に気になるのは、次のように、コメント モデルが管理者の独自のカテゴリにあることです。
MyApp
---Model1
---Modle2コメント
---コメント
コメントは MyApp モデルに関連付けられているため、このようにしたいと考えています。
MyApp
---Model1
---Modle2
---コメント
このコード行を MyApps admin.py に追加してこれを達成しようとしました (Comment クラスを上書きします)。
そして、これは機能します (そしてコメントモデルは MyApps の下に表示されます) が、リンクが間違っています...モデルは次を指しています:
エラーを出力します:
そのようなテーブルはありません: myapp_myappcomment
それ以外の:
これは、管理者がアプリ名とモデル名に従って URL を形成するためです...どうすれば管理者のコメント モデルの位置を変更し、URL をそのままにしておくことができますか?
何か方法があるはずですよね?
django - 特定のオブジェクトのすべてのサイトから Django コメントを取得する
Django-sites フレームワークを使用して、異なるサイト間でオブジェクトを共有しています。モデル内で多対多の関係を定義できたため、これはうまく機能します。
ただし、テンプレート タグ 'render_comment_list' を使用してオブジェクトのコメント (Django コメント) を取得しているときに、その特定のサイトに投稿されたコメントのみを取得します。これは当然のことですが、複数のサイトで共有されているそのオブジェクトについて投稿された他のコメントも取得したいと思います。
Django-comments のコードを掘り下げると、これが「問題」の原因となっている方法のようです。
私の質問は次のとおりです。
- テンプレート タグ 'render_comment_list' が特定のサイトのコメントだけでなく、オブジェクトのすべてのコメントを表示するように動作を変更する最も簡単な方法は何でしょうか?
- 別のテンプレート タグを作成し、Django-comments テンプレート タグ コードの 99% をコピーして貼り付ける必要がありますか?
ありがとう
django - コメントフレームワークに組み込まれたdjangoに削除ボタンを提供する方法
djangoコメントフレームワークを使用しています。それは多くの機能を提供すると言っており、ソースファイルでもさまざまなオプションがあることがわかりますが、ドキュメントは少し貧弱です。
2つの問題があります
- 投稿されたコメントごとにを提供したいの
delete button
ですが、ユーザーを別のページにリダイレクトしたくありません。コメントを確認メッセージとともに削除したいだけです。でこれを行う方法を教えてくれるドキュメントは見つかりませんでしたdjango comments framework
- がある場合
error while submitting the comment form
、ユーザーはredirected to the preview page
(エラーも処理します)、これは必要ありません。適切なエラーを表示して、ユーザーを同じページにリダイレクトしたいと思います。どうすればこれを行うことができますか。
どんな助けや指示も大歓迎です
django - djangoコメントフレームワーク:distinct()が機能しませんか?
コメントモデルの任意のフィールドでdistinct()を実行すると、常にすべてのレコードが返されます。
Comment.objects.values('user')。distinct()
[{'user':1}、{'user':0}、{'user':0}、{'user':0}、{'user':0}、{'user':1}、{ 'user':1}、{'user':1}、{'user':1}]
Comment.objects.values('ip_address')。distinct()
[{'ip_address':u'127.0.0.1'}、{' ip_address':u'192.168.0.180'}、{'ip_address':u'192.168.0.180'}、{' ip_address':u'192.168.0.180 '}、{' ip_address':u'192.168.0。180'}、{' ip_address':u'192.168.0.180'}、{'ip_address':u'192.168.0.180'}、{' ip_address':u'192.168.0.180'}、{'ip_address':u ' 192.168.0.180'}]
なぜこうなった?これを回避する方法はありますか?ありがとう!
ps:distinct()は、テスト中にカスタムモデルのさまざまなタイプのフィールドで非常にうまく実行されます。コメントフレームワークについて何か特別なことはありますか?
結論のビット この質問に答えてくれた皆さんに感謝します。いくつかの読み物と組み合わせると、次のように結論が得られます。
- values()は、最終的なsql( "のSELECT部分のルックアップフィールドに影響を与えます。values ()は、オプションの位置引数* fieldsを取ります。これは、SELECTを制限するフィールド名を指定します")
- order_by()は、そのパラメーターをSELECT部分にも追加します。
ルックアップでdistinct()を使用すると、SQLは次のようになります。
SELECT DISTINCT [fields1、fields2、fields3] FROM ... WHERE .. ..
そして、フィールドの値がすべて一緒になって、レコードが一意であるかどうかを決定します。フィールドは、ルックアップのvalues()またはorder_by()関数から取得できます。
したがって、order_by()は、distinct()と組み合わせると、いくつかの不要な効果を追加します。order_byで指定されたフィールドは、レコードが一意であるかどうかも考慮されます。
Django Commentにはデフォルトで非表示のorder_byパラメーターがあるため、問題全体が発生します。qsを返すときに、どのモデルにもorder_byが隠されていると、同じ問題が発生する可能性があります。
- これを解決する方法は、ルックアップの最後に空のorder_by()を追加することです。これにより、デフォルトのorder_byが削除されます。
django - シェルでの Django コメント
django コメントを使用してテンプレートにコメントを入れるのに問題があります。シェルでいくつかのことをテストしたいと思います-つまり。オブジェクトをプルして、それに対する一連のコメントを取得しますが、その方法がわかりません。
シェルでモデルのコメントにアクセスする方法はありますか?