我創建了自定義用戶模型。現在我想用作用user_name戶名欄位而不是username. 如下面的代碼片段所示。
class CustomUser(AbstractBaseUser):
username_validator = UnicodeUsernameValidator()
user_name = models.CharField(
_('username'),
max_length=100,
unique=True,
help_text=_('Required. 100 characters or fewer. Letters, digits and @/./ /-/_ only.'),
validators=[username_validator],
error_messages={
'unique': _("A user with that username already exists."),
},
)
USERNAME_FIELD = 'user_name'
我做不到。我收到以下錯誤:
SystemCheckError: System check identified some issues:
ERRORS:
<class 'accounts.admin.CustomUserAdmin'>: (admin.E033) The value of 'ordering[0]' refers to 'username', which is not an attribute of 'accounts.CustomUser'.
<class 'accounts.admin.CustomUserAdmin'>: (admin.E108) The value of 'list_display[0]' refers to 'username', which is not a callable, an attribute of 'CustomUserAdmin', or an attribute or method on 'accounts.CustomUser'
之所以使用這個,是因為專案的所有資料庫表約定都是這樣的。如果我可以像下面對 Meta 類中的表一樣定義欄位名稱是資料庫,那就更好了。我在資料庫中將我的 customuser 模型稱為用戶模型。
class Meta:
db_table = "user"
反正有沒有像這樣呼叫表欄位?
class Meta:
db_table_user_name = "username"
如果可能,那么我們不需要更改username為user_name. 我們可以直接呼叫username欄位等于資料庫中的user_name。當且僅當可以使用 django 模型時。
uj5u.com熱心網友回復:
在您注冊用戶模型的 admin.py 中。您正在使用 ModelAdmin 注冊它,并且在該 ModelAdmion 中您錯誤地命名了欄位。也將其更改為 user_name。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/400928.html
標籤:Python 姜戈 django 模型 Django 休息框架 抽象类
上一篇:無法訪問在Django中呈現的HTML頁面中的背景關系物件
下一篇:Django視圖回傳資料
