#はじめに
DjangoのUserクラスにはobjectsという変数があります。
今回はそのobjectsとは何なのかを解説します。
##使い方
Djangoではデータベースの情報とプログラム上で定義したデータモデルをSQLクエリーを使わなくてもCRUDするための仕組みがあります。
このような仕組みをORM(Object-RelationMapping)といいます。
DjangoではこのORMをManagerクラスが行います。
例えば、Djangoにはユーザ登録の際に使えるデータモデルとしてUserクラスがデフォルトで定義されています。
そのUserクラスがデータベースから情報を取得する際、
仲介役(ORM)のManagerクラスがdjango.contrib.auth.models.py内で定義されています。
django/contrib/auth/models.py
class UserManager(BaseUserManager):
...
以下はUserクラスをviews.pyで取得する例です。
app/views.py
from django.contrib.auth.models import User
def index(request):
user = User.objects.all()
objects=Usermanager() です。
上記に基づくと、このコードがUserクラスに格納するための情報をUserManagerクラスを介してデータベースから取得していると読み解くことができます。
##参考サイト
- [Django]モデルの基礎(https://python.keicode.com/django/models-basics.php)
- [Django]ORMとは(https://dev-yakuza.posstree.com/django/orm/)
- [Django]カスタムユーザモデル(https://hodalog.com/how-to-create-user-sign-up-view/)