Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:参考用户';使用AbstractUser的第一个用户名?_Django_Django Models_Django Admin_Django Users - Fatal编程技术网

Django:参考用户';使用AbstractUser的第一个用户名?

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

我的目标是向用户添加非身份验证值。像,生物,国籍等,我试图使用一个自定义的用户模型。我无法访问这些值。我可以使用我创建的新名称,但不能使用原始名称,如名字、姓氏、电子邮件

我的model.py看起来像

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;中遇到了一点问题:我能够在管理站点中获取字段,但是每当我尝试添加用户时,我都会得到一个错误<代码>首先,输入用户名和密码。然后,您将能够编辑更多用户选项。请更正以下错误。但字段中没有错误。我试着空的,满的。只有用户名和密码。但什么都没有。