django本身的auth_user 只包含了基本的信息包括用戶名,密碼,郵箱以及注冊時間和最新的登錄時間,但是這些字段很難滿足我們的要求,有時我們想記錄用戶更多的信息,例如手機號等信息,這時就需要在auth_user 的基礎上增加字段,django自定義User網上有四種方法。
1,是官網上推薦的方法,就是增加一個表auth_profile,其中以auth_user 表中的id作為Forgein Key將兩個表過關聯起來,這樣可以在auth_profile 中增加多個用戶的信息。
2,另外一種是修改django的源碼,這種方法簡單暴力直接,但是這種方法可移植性差,不利於多項目部署。
3,繼承django auth/models 中的User繼續增加字段,這種方法需要修改setting中的AUTH_USER_MODEL=‘app.User’ app為你自定義的app,INSTALLED_APP中要包含Contenttypes和auth兩個app,class meta中 db_table 要指定為auth_user, 如果要在admin中管理用戶的話,需要將app_label 進行指定。而且要在admin中重新定義UserAdmin 將新添加的字段寫在list_display和add_fields中。詳見django.contrib.auth.admin中。
4,重寫User,也就是繼承AbstractUser和Permissions兩個類,其實django的User Model也是繼承自這兩個類,因此你可以做類似User的定義方法定義User。