はじめに
DjangoのModelで任意のテーブル名、カラム名を指定してデータベースにアクセスする方法について記載します。
環境
Django 3.0.x
テーブル名
DjangoのModelは、「アプリケーション名_クラス名」がデフォルトのテーブル名となります。
以下の例では、「アプリケーション名_Employee」がテーブル名となります。
from django.db import models
class Employee(models.Model):
first_name = models.CharField()
last_name = models.CharField()
任意のテーブル名を指定する場合は、Modelの内部クラスMetaのメタデータオプションでテーブル名を指定します。
from django.db import models
class Employee(models.Model):
first_name = models.CharField()
last_name = models.CharField()
class Meta:
db_table = '従業員' # テーブル名:'従業員'
カラム名
DjangoのModelは、フィールド名がデフォルトのカラム名となります。
以下の例では、「first_name」と「last_name」がカラム名となります。
from django.db import models
class Employee(models.Model):
first_name = models.CharField()
last_name = models.CharField()
class Meta:
db_table = '従業員'
任意のカラム名を指定する場合は、各フィールドのフィールドオプションでカラム名を指定します。
from django.db import models
class Employee(models.Model):
first_name = models.CharField(db_column='名') # カラム名:'名'
last_name = models.CharField(db_column='姓') # カラム名:'姓'
class Meta:
db_table = '従業員'
おわりに
各オプションの詳細については、Django公式サイトにも説明がありますので、
そちらも参考にしていただければと思います。