問題タブ [django-2.2]

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 投票する
2 に答える
70 参照

django - DetailView と CreateView の外部キーで接続された 2 つのモデルにアクセスするにはどうすればよいですか?

私はウィキを構築しており、各ウィキページに加えられたすべてのリビジョンを保存する必要があります。これは、作成されたウィキページごとに新しい改訂表が必要であることを意味します。

各ウィキページ テンプレートを DetailView で提示する場合、Wikipage.title、最新のリビジョンとその Revision.content、Revision.author、Revision.last_edit、および Revision.comment にアクセスする必要があります。「モデル=ウィキページ」と「モデル=リビジョン」を設定することでタイトルにアクセスできましたが、両方を同時に設定することはできませんでした。

models.py

django に付属の DetailView と CreateView を使いたかったのですが、両方のテーブルから特定のデータにアクセスすることに成功していません。ListView が正しく機能するようになりましたが、Wikipage のタイトルのみが必要で、Revision のタイトルは必要ありません。

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

django-2.2 - django 2.2 用に django-synchro をアップグレード: OperationalError - そのようなテーブルはありません: django_content_type"

django-synchro を django 2.2 にアップグレードしようとしています。プロジェクトを django 2.1 にアップグレード済みですが、ContentType オブジェクトに問題があります。

django 2.1 にアップグレードされたバージョンは、ここにあります。

(python runtests.py が動作し、すべてのテストがパスします)

django 2.2.3でエラーが発生しました

django.db.utils.OperationalError: そのようなテーブルはありません: django_content_type

初期化時に、移行はデフォルトのデータベースで行われ、残りはテスト データベース (メモリ内) で行われるようです。そのため、ContentType は残りのコードでは見られません。models.py読み込み 時にエラー発生(content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE))

どんなアイデアでも大歓迎です...

Django 2.2 のリリース ノートを見てきました

2.2 には後方互換性のない 2 つの変更があり、エラーが発生する可能性があります。

TransactionTestCase のシリアル化されたデータの読み込み: 最初のデータ移行は、データベースのフラッシュ後に、テストの最後に TransactionTestCase に読み込まれるようになりました。古いバージョンでは、このデータはテストの開始時にロードされていましたが、これにより test --keepdb オプションが正しく機能しません (テスト スイート全体の最後でデータベースは空でした)。TransactionTestCase の内部をカスタマイズしていない限り、この変更がテストに影響を与えることはありません。

Test : SQLite 3.20+ の各 TestCase テストの最後に、延期可能なデータベース制約がチェックされるようになりました。これは、延期可能な制約をサポートする他のバックエンドと同様です。これらのチェックは、高価なテーブル イントロスペクションが必要になるため、古いバージョンの SQLite には実装されていません。