[英]When creating a custom User model in Django what is the difference between inheriting from models.Model and AuthUser?
我已經看到了兩種在Django中擴展User模型的方法。
方法1:
class User(AuthUser):
new fields...
方法2:
class MyUser(models.Model):
user = models.OneToOneField(User)
new fields...
他們之間有什么區別?
第一個是多表繼承 。 (我認為你實際上是在討論django.contrib.auth.models.User)。 您的新用戶模型將包含django用戶模型中定義的所有字段。 這是由django在模型上隱式創建OneToOneField來管理的。
第二個,你自己創建OneToOneField。 現在,django.contrib.auth.model.User模型的字段不會自動顯示為您自己模型的一部分。 你仍然可以訪問它們
myinstance.user.parent_field
說完這一切后,對於選項1, 您應該從一個抽象基類繼承,而不是直接從User模型繼承 。
class MyUser(AbstractBaseUser):
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.