[解決済み] Django - Southを使用してモデルフィールドの名前を変更する方法は?
2022-04-09 21:16:59
質問
モデル内の特定のフィールドの名前を変更したい。
class Foo(models.Model):
name = models.CharField()
rel = models.ForeignKey(Bar)
に変更する必要があります。
class Foo(models.Model):
full_name = models.CharField()
odd_relation = models.ForeignKey(Bar)
サウスを使った一番簡単な方法は何ですか?
どのように解決するのですか?
を使用することができます。
db.rename_column
関数を使用します。
class Migration:
def forwards(self, orm):
# Rename 'name' field to 'full_name'
db.rename_column('app_foo', 'name', 'full_name')
def backwards(self, orm):
# Rename 'full_name' field to 'name'
db.rename_column('app_foo', 'full_name', 'name')
の最初の引数は
db.rename_column
はテーブル名なので、どのように
Django はテーブル名を作成します。
:
Django はモデルクラスとそれを含むアプリの名前から、自動的にデータベーステーブルの名前を導出します。モデルのデータベーステーブル名は、モデルの "app label" -- manage.py startapp で使った名前 -- をモデルのクラス名とアンダースコアでつないだものから作られます。
ProjectItemのように、複数単語のキャメルケースのモデル名がある場合、テーブル名は次のようになります。
app_projectitem
(の間にアンダースコアは挿入されません)。
project
と
item
がキャメルケースであるにもかかわらず)。
関連
-
[解決済み] argparseによるブーリアン値のパース
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] JSONファイルをprettyprintする方法は?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] Pythonモジュールをアンロード(再ロード)するにはどうしたらいいですか?
-
[解決済み] 文字列の各単語の最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み] Django のカスタムフィールドで User モデルを拡張する
-
[解決済み] Django のフォームで、あるフィールドを編集できないように readonly (または disabled) にするにはどうしたらいいですか?
-
[解決済み】Django Southでの後方移行について
-
[解決済み] Django/South を使ってモデルの名前を変更する最も簡単な方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Python カメの描画コマンドとその例
-
Pythonによるjieba分割ライブラリ
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] Django/South を使ってモデルの名前を変更する最も簡単な方法とは?