Django:参考用户';使用AbstractUser的第一个用户名?
我的目标是向用户添加非身份验证值。像,生物,国籍等,我试图使用一个自定义的用户模型。我无法访问这些值。我可以使用我创建的新名称,但不能使用原始名称,如名字、姓氏、电子邮件 我的model.py看起来像Django:参考用户';使用AbstractUser的第一个用户名?,django,django-models,django-admin,django-users,Django,Django Models,Django Admin,Django Users,我的目标是向用户添加非身份验证值。像,生物,国籍等,我试图使用一个自定义的用户模型。我无法访问这些值。我可以使用我创建的新名称,但不能使用原始名称,如名字、姓氏、电子邮件 我的model.py看起来像 from django.db import models from django.contrib.auth.models import AbstractUser class User(AbstractUser): bio = models.CharField(max_length=50
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
bio = models.CharField(max_length=500, blank=True)
phone = models.CharField(max_length=20, blank=True)
我添加了Settings.py:
AUTH_USER_MODEL = 'publication.User'
INSTALLED_APPS = [
'publication.apps.PublicationConfig,
...
我的admin.py:
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User
admin.site.register(User, UserAdmin)
如何将个人简历和昵称添加到管理页面
我如何以表格等形式访问外部的名字、电子邮件、简历和电话
非常感谢。您正在使用Django的
UserAdmin
,它为您的用户添加了在管理表单中看到的所有内容。你可以看到代码
如果要添加字段,需要从头创建自定义模型管理类,或者扩展所需的类。您可以扩展和覆盖您正在使用的UserAdmin
中的内容。检查add_fieldset
和fieldset
的结构,将字段添加到这些元组将把它们添加到admin
例如,要在表单中添加bio
和phone
:
@admin.register(models.User)
class CustomUserAdmin(UserAdmin):
fieldsets = (
(None, {'fields': ('bio', 'phone')}),
) + UserAdmin.fieldsets
add_fieldsets = (
(None, {'fields': ('bio', 'phone')}),
) + UserAdmin.fieldsets
阅读有关如何自定义管理员的更多信息。添加到@gdef_2;的答案中 向我找到的用户添加信息的最佳方法是使用
Abstractuser
创建自定义用户模型。这简化了很多事情。这必须在第一次迁移之前的项目早期完成,实际上,我建议每次都这样做。从现在起我将使用这个
在admin.py中注册模型时,值得注意的事项。抽象模型应按以下方式注册:
admin.site.register(CustomUser,CustomUserAdmin)
但对于其他型号,请使用装饰器:
@admin.register(Story)
class StoryAdmin(admin.ModelAdmin):
list_display = ('id','title','get_date_formatted', 'author')
...
more stuff
检查一下,我认为如果你的答案是最多的,你应该会很好。您需要用字段扩展
UserAdmin
。您运行迁移了吗?我运行了迁移!早期,确保用户模型正确完成。根据文档,迁移是一个令人头疼的问题。我在@gdef_389;中遇到了一点问题:我能够在管理站点中获取字段,但是每当我尝试添加用户时,我都会得到一个错误<代码>首先,输入用户名和密码。然后,您将能够编辑更多用户选项。请更正以下错误。但字段中没有错误。我试着空的,满的。只有用户名和密码。但什么都没有。