Django_インポートせずにモデルを指定する方法 #213日目
DjangoでForeignKeyを使ってモデルを指定する際、他ファイルからインポートせずにモデルを指定したい、という場面が出てきます。
これはモデルの数が膨大になってきたとき直面する場面で、愚直にimportするとそれだけでコード量が膨大になり、importの関係も複雑になり、コンフリクトが起きて上手く機能しないことが増えたりします。
そこでDjangoでは、モデルをimportなしで指定する方法が用意されています。
同じディレクトリの別ファイルで定義されているモデルは、以下のようにシングルクォーテーションで囲むだけで指定可能です。
[aaa.py]
class Company(models.Model):
member = models.ForeignKey('Member', on.delete=models.CASCADE, related_name='company')
[bbb.py]
class Member(models.Model):
name = models.CharField(max_length=255, blank=False)
address = models.CharField(max_length=255, blank=False)
インポートする場合は以下のようになると思います。
[aaa.py]
from .bbb import Member
class Company(models.Model):
member = models.ForeignKey(Member, on.delete=models.CASCADE, related_name='company')
[bbb.py]
class Member(models.Model):
name = models.CharField(max_length=255, blank=False)
address = models.CharField(max_length=255, blank=False)
実務では基本的にこの方法で記載されているようです。
ここまでお読みいただきありがとうございました!!
参考
この記事が気に入ったらサポートをしてみませんか?