管理サイト
以前、カスタムユーザモデルの作成では、認証ユーザ用のユーザモデルとしてaccountsアプリケーションにおいてカスタムユーザモデルCustomUserを定義しました。それに加えて、モデルの定義では、onlineアプリケーションにおいてユーザモデルUserも定義しています。これらを紐付けるためにaccounts/models.pyに下記コードを追加してください。
リスト1: recsys_django/accounts/models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
from online.models import User  # 追加
class CustomUser(AbstractUser):
    """カスタムユーザモデル
    Attributes
    ----------
    user : OneToOneField
        ユーザ
    """
    user = models.OneToOneField(User, models.DO_NOTHING, null=True)     # 追加
下記コマンドを実行し、マイグレーションファイルを作成します。
(venv_recsys_django) $ export DB_USER=rsl
(venv_recsys_django) $ export DB_PASSWORD=【パスワード】
(venv_recsys_django) $ python manage.py makemigrations accounts
Migrations for 'accounts':
  accounts/migrations/0002_customuser_user.py
    - Add field user to customuser
つづいて、マイグレーションを実行します。
(venv_recsys_django) $ python manage.py migrate
Operations to perform:
  Apply all migrations: accounts, admin, auth, contenttypes, online, sessions
Running migrations:
  Applying accounts.0002_customuser_user... OK
PostgreSQL上でaccounts_customuserテーブルの構成を確認してみましょう。
recsys_django=# \d accounts_customuser
                                Table "public.accounts_customuser"
    Column    |           Type           | Collation | Nullable |             Default              
--------------+--------------------------+-----------+----------+----------------------------------
 id           | bigint                   |           | not null | generated by default as identity
 password     | character varying(128)   |           | not null | 
 last_login   | timestamp with time zone |           |          | 
 is_superuser | boolean                  |           | not null | 
 username     | character varying(150)   |           | not null | 
 first_name   | character varying(150)   |           | not null | 
 last_name    | character varying(150)   |           | not null | 
 email        | character varying(254)   |           | not null | 
 is_staff     | boolean                  |           | not null | 
 is_active    | boolean                  |           | not null | 
 date_joined  | timestamp with time zone |           | not null | 
 user_id      | integer                  |           |          | 
...(略)...
Foreign-key constraints:
    "accounts_customuser_user_id_d3560d05_fk_users_user_id" FOREIGN KEY (user_id) REFERENCES users(user_id) DEFERRABLE INITIALLY DEFERRED
...(略)...
上記のように、usersテーブルのuser_idを参照する外部キーとしてuser_idカラムが追加されていることがわかります。このuser_idにより、新規に登録されたユーザがusersテーブル上のユーザと紐付けられることになります。
つづいて、ユーザを管理しやすくするため管理サイトを用意します。CustomUserモデルを管理サイトに登録するため、accounts/admin.pyに下記のコードを記述します。
リスト2: recsys_django/accounts/admin.py
from django.contrib import admin
from accounts.models import CustomUser
class CustomUserAdmin(admin.ModelAdmin):
    """カスタムユーザ管理クラス
    """
    list_display =  ('id', 'username', 'user_id')
    list_display_links = ('id', 'username', 'user_id')
admin.site.register(CustomUser, CustomUserAdmin)
次に、管理者権限をもつスーパーユーザを作成します。manage.pyがあるディレクトリにいることを確認したうえで、下記コマンドを実行してください。メールアドレス、Passwordは任意のもので結構です。
(venv_recsys_django) $ python manage.py createsuperuser
ユーザー名: admin
メールアドレス: admin@recsys-django.org
Password: 
Password (again): 
Superuser created successfully.
ブラウザからDjango管理サイトにアクセスするため下記のURLにアクセスしてください。末尾にadmin/を付けていることに注意してください。
http://localhost:8000/admin/

Django管理サイトへのログイン画面が表示されました。ここで、先ほど作成したスーパーユーザのユーザ名とパスワードでログインしてください。

管理サイトの画面が表示されます。

ユーザーをクリックすると、上図のように先ほど作成したスーパーユーザであるadminが確認できます。ここでは、一旦、ログアウトしておきましょう。
なお,管理サイトの詳細については文献[1]を参照してください.
参考
- 現場で使える Django の教科書《基礎編》 # 第13章 管理サイト(Django Admin)