問題タブ [generic-foreign-key]

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 に答える
646 参照

python - Django REST API での ValidationError と汎用外部キー書き込み可能アクセスの generic_relations

私はDjango REST APIとgeneric_relationsモジュールを使用して、テンプレートではなくREST API関数を介して駆動されるDjangoコメントの一種のバリアントを作成しています。

名前付きアノテーションの Model クラスは次のようになります。

さて、コンテンツ用の別のモデルがあります。これはほとんど何でもかまいません。たとえば、単純な投稿アプリケーションです。

同じ外観のシリアライザーは次のようになります。

さて、問題は次の行にあります: content_object = GenericRelatedField({ BlogContent: serializers.HyperlinkedRelatedField(view_name='annotation:blogcontent-detail'), }, read_only=False)

を設定して一般的なリレーションを読み取り専用として使用する場合read_only=True、REST API のブラウズ機能は問題ありませんが、 に切り替えた瞬間にFalseサーバーが ValidationError を返します。

ログとコードを熟読すると、rest_framework.renderers.pyat get_raw_data_form(self, view, method, request)Does not find an object in the call のようobj = getattr(view, 'object', None)です。

これにより、field_to_native関数をserializer = self.determine_deserializer_for_data(value)inとして評価しているときに、 as にgeneric_relations何も渡さないvalueため、コードが壊れます。

他の誰かがそのようなエラーに遭遇したり、修正するのを手伝ってくれたりしましたか? 助けてください!

トレースバックは次のとおりです。

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

django - Django 汎用外部キー

2 つの modelForms を持つフォームがあります。そのうちの 1 つは、他への一般的な外部キーを持っています。フォームの保存中に次のエラーが発生します。

これが私のコードです。

そして、これはフォームを保存する私のビューです

エラーはこの行で発生します

ここで何が欠けているのか誰か教えてもらえますか?

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

python - Django Rest Framework を使用して Generic Relation をシリアライズする方法

モデルでジェネリック リレーションを使用しており、Django Rest Framework を使用してシリアル化しようとしています。ただし、次のことを行うと、属性エラーが発生します。

models.py

serializers.py

私は何を間違っていますか?これについては、django rest フレームワークのドキュメントではあまり見つけることができませんでした。

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

python - DJANGO - Rest フレームワークを使用して POST メソッドで genericforeignkey を使用してデータを保存する

データベースに「フィードバック」オブジェクトのインスタンスを保存したいと思います。フィードバック オブジェクトには「クライアント」への外部キーと、「ベンダー」または「ストア」に関連する可能性があるためジェネリック外部キーがあります。許可する 2 つの URL を作成しました。 1 つはベンダーへのフィードバックを作成するため、もう 1 つはストアへのフィードバックを作成するための POST で、どちらも主キーを受け取ります。

クラス図の例: クラス図

これが私のアプローチです:

シリアライザーは有効ですが、保存しようとすると次のエラーが発生します。

これは、フィードバック オブジェクトの genericforeignkey が NULL ではないために発生します。

POST メソッドでフィードバックのオブジェクトを作成するにはどうすればよいですか?

でのご依頼の一例ですfeedback/store/(?P<store_id>\d+)/

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

python - まだ正常な状態で Django に汎用外部キーを設定する

一般的な外部キーを設定しようとして頭を壁にぶつけています。できるだけ多くのコードを投稿するつもりです。1 時間後にもう一度試してみます。

ドキュメントを何百万回も読みましたが、役に立たないようです。

これが私の見解で行っていることです。

フォームはすべて ModelForms です (使いやすさのため、保存機能を使用できます)。彼らはこのように見えます

関連するクラスは次のようになります

すべてがとても単純に見えますが、content_type、object_id、および content_object はボールをプレーしたくありません。私がやりたいことは、Comment Data フォームのインスタンスを作成し、それを content_object タイプに割り当てることです。content_object が (HttpResponse でわかる限り) 何も返さず、content_type と object id の両方が設定されていない、ストリームとコメント データの両方のインスタンスになります。

明らかに明白な/愚かな間違いはありますか?

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

python - Django Admin の汎用リレーション/汎用外部キー

GenericForeignKeyDjango 管理画面で a を表示しようとしましたが、うまくいきません。またはクラスFullCitationにリンクできるクラスがあります。そのため、一般的な外部キーを使用しました。NonSupportedProgramSupportedProgram

管理者では、ユーザーがドロップダウンからのみ選択できるようにしてから、フィールドから、ユーザーがドロップダウン リストから既存の s または'NonSupportedProgram'既存のsを選択できるようにする必要があります。新しいもの。これは可能ですか?どこが間違っていますか?'SupportedProgram'content_typeobject_idNonSuportedProgramSupportedProgram

models.py

admin.py

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

python - 汎用外部キーのフィルター

一般的な外部キーでオブジェクトをクエリ/フィルタリングする「Python/Django」の方法はありますか? is_primary が True である特定のソフトウェアの FullCitation オブジェクトをすべて取得しようとしています。

私はこれを行うことができないことを知っていますが、次のようなことをしたいです:

models.py

views.py # 現在の試み