問題タブ [django-models]
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でモデルの名前を変更した後のauth_permissionテーブルの修正
時々、Djangoでモデルの名前を変更する必要があります(または、最近遭遇した1つのケースでは、1つのモデルを2つに分割し、新しい/異なる名前を付けます)。(はい、適切な計画はこの状況を回避するのに役立ちます)。
データベース内の対応するテーブルの名前を変更し、影響を受けるコードを修正した後、1つの問題が残ります。これらのモデルを操作するためにユーザーまたはグループに付与されたアクセス許可は、引き続き古いモデル名を参照します。これを修正する自動または半自動の方法はありますか、それとも手動のデータベース手術の問題ですか?(開発では、auth_permissionsテーブルとsyncdbを削除して再作成できますが、本番環境はそれほど単純ではありません)。
python - Django はデフォルトのフォーム値を設定します
次のようなモデルがあります。
次のように、上記のモデルのモデルフォームもあります。
そのタンクの隠しフィールドのデフォルト値を設定する方法を知りたいです。これまでにフォームを表示/保存する機能は次のとおりです。
django - Django:主キーのない読み取り専用ビューのクエリ
レンダリング中に例外をキャッチしました: (1054、「不明な列 'read_only_view.id ' in ' field list'」)
ビューに表示される主キーはありません。回避策はありますか?
コメント:
Django でアクセスしているビューを制御できません。MySQL ブラウザーには列が表示されますが、主キーは表示されません。
django - フィールドからマネージャーを追加する方法
私がやりたいのは、一部のモデルが私のフィールドを使用すると、そのモデルにカスタムマネージャーが自動的に追加されることです。
私の知る限り、contribute_to_class はそのような機能を提供します
問題は、カスタム マネージャーで self.model._default_manager を使用してデフォルト マネージャーでクエリを実行することですが、それを実行しようとすると、django は AttributeError: 'NoneType' object has no attribute '_default_manager' と言います。
Contribut_to_class を使用せず、モデル クラスの横にカスタム マネージャーを記述した場合、期待どおりに動作します。何が問題になる可能性がありますか?
django - 「./manage.py syncdb」を取得して追加のビューを作成したり、カスタム SQL を実行したりする方法は?
syncdb がモデルのテーブルを作成した後にカスタム SQL ステートメントを実行する方法はありますか? 具体的には、いくつかのデータベース ビューを作成したいと考えています。
python - Django モデルの継承。フィールドの非表示または削除
サードパーティのコードからモデル クラスを継承したいと考えています。一部のフィールドは使用しませんが、クライアントが Admin でモデルを編集できるようにしたいと考えています。それらを管理者から非表示にするのが最善の策ですか、それとも最初から作成されないようにすることはできますか?
さらに - 不要なフィールドの 1 つが必要な場合はどうすればよいですか? 私が最初に考えたのは、save メソッドをオーバーライドして、デフォルト値を設定することです。
django - Managerはリクエストごとに1回モデルオブジェクトを返します(Managerはオブジェクトを1回返した後にオブジェクトをドロップします)
すぐ下に示すように、動作は問題とは無関係でした。説明については、投稿の下部を参照してください。ありがとう。
こんにちは、
現在、特定のモデルのデフォルトのマネージャーがこのモデルのオブジェクトをリクエストごとまたはシェルセッションごとに1回だけ返すという動作を経験しています。以下は、ビューで停止しないPDBトランスクリプトです(ただし、動作はPDBなしでも発生します)。
オブジェクトを取得すると、そのオブジェクトは後のQuerySetに表示されなくなります。
この動作は、私のモデルの1つのみを対象としています。他のモデルは正しくクエリを実行しているようです。基本的には、モデルの定義とは何の関係もないと思います。
私の説明が少し曖昧であることをお詫びします。私はこの振る舞いがどのように発生するかについて混乱していて、次にどこを突くべきかわからない。
クエリセット用にマネージャによって生成されるSQLは、毎回同じです(そして明らかに正しいです)。
Mac OS10.5マシンでPython2.6.1にパッケージ化されているDjango1.0.2、Python 2.6.1、およびSQLiteを使用しています。
コメントの1つに応じて、競合の可能性を回避するためにrelated_name
パラメーターの名前を変更しようentries1
とentries2
しましたが、動作は変わりませんでした。
解決済み(私は思う)
申し訳ありませんが、私が提示した問題は、実際には問題とは無関係でした。エントリーのシグナルの1つに不注意なバグがありました:
でmyapp.__init__
:
でmyapp.signals
:
私のコードの正しいバージョンは次のようになります。
python - Django のラベルと翻訳 - モデル設計
次の Django モデルがあるとします。
各ラベルには、ID 番号、ラベル テキスト、および略語があります。ここで、これらのラベルを他の言語に翻訳できるようにしたいと考えています。これを行う最善の方法は何ですか?
私が見ているように、いくつかのオプションがあります。
1: 翻訳をモデルのフィールドとして追加します。
これは明らかに理想的ではありません。言語を追加するにはモデルを編集する必要があり、正しいフィールド名は言語によって異なります。
2: 言語を外部キーとして追加します。
これははるかに優れています。特定の言語ですべてのラベルを要求し、それらを dict に入れることができるようになりました。
しかし、ここでの問題は、次のように、ラベル dict がルックアップ テーブルであることを意図していることです。
ラベルごとに行があり、単一のラベルに複数の言語がある可能性がある場合、これは機能しません。それを解決するには、別のフィールドが必要です。
3: ラベル テキストを新しいモデルに投入します。
しかし、これは機能せず、ラベルのテキストを参照するたびにデータベース ヒットが発生します。
オプション 2 を実装しましたが、非常に見にくいと思います。group_id フィールドが気に入らず、これ以上の名前が思い浮かびません。さらに、私が使用している StandardLabel は抽象モデルであり、これをサブクラス化して、さまざまなフィールドのさまざまなラベル セットを取得します。
オプション 3 がデータベースにヒットしなかった場合は、それを選択すると思います。本当の問題は、フィルターがインスタンスをtext__language=1
キャッシュしないことだと思います。LabelText
text.get(language=1)
これについてどう思いますか?誰でもよりクリーンなソリューションを推奨できますか?
編集:明確にするために、これらはフォームラベルではないため、Django 国際化システムは役に立ちません。