🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

7248閲覧

【Django】Model に インデックス名を付けたい。

azuapricot

総合スコア2341

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/10/16 06:26

いつもお世話になっております。

早速本題に入らせていただきます。

現在、Python とDjangoを用いて開発中なのですが、
Model にインデックスを付けたいなーと思っています。

参考にしたチュートリアルサイト

上記サイトには、以下のように記載されていました。

Index.name 

インデックスの名前。場合は
name提供されていないDjangoは名前を自動生成します。
異なるデータベースとの互換性のために、
インデックス名は30文字より長くすることはできず、
数字(0-9)またはアンダースコア(_)で始めてはなりません。

ほうほう、とりあえずインデックス名はつけられるのね、と理解はしましたが、
またしても肝心の 付け方 が記載されていませんでした。


インデックスを付ける例があるサイト

上記サイトには、カラムにインデックスを指定する方法が書かれていて、

Python

1class Mail(models.Model): 2 name = CharField(db_index=True)

ほうほう、 db_index=True でインデックスが付けられるのね、と理解はしました。

このインデックスに名前を付ける方法がどれだけ検索しても書いてありませんでした。

予想としてはこんな感じ・・・?になるのでしょうか。↓


とりあえず書いてみた結果

Python

1class Mail(models.Model): 2 name = CharField(db_index=True, index_name=Hogehoge)

お時間ある方で、どなたかインデックス名の付け方をご存知の方いらっしゃいましたら、ご助力頂けますと幸いです・・・。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

最近質問して自己解決するっていうのが多すぎて(もう少し自分で頑張れよって思いますすみません)

インデックス例

Python

1from django.db import models 2 3class Customer(models.Model): 4 first_name = models.CharField(max_length=100) 5 last_name = models.CharField(max_length=100) 6 7 class Meta: 8 indexes = [ 9 models.Index(fields=['last_name', 'first_name']), 10 models.Index(fields=['first_name'], name='first_name_idx'), 11 ]

Metaクラスのところに記述するんですね・・・ほうほう、って感じでした。 Fin...

投稿2019/10/16 06:45

azuapricot

総合スコア2341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問