如何在Django Admin中添加额外字段?

2024-05-29 11:04:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始使用Django,我刚刚修改了我的项目,这样我就不用基本用户,而是使用抽象用户模型,正如我在模型.py文件夹

#accounts/models.py

from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):
    # add additional fields in here
    favourite_colour = models.CharField("Favourite Colour", max_length=100)

    def __str__(self):
        return self.email

我还创建了与我的注册系统工作良好的创建表单

^{pr2}$

现在我正在尝试编辑管理页面,以便可以更改users favourite_colour属性。到目前为止,我的admin.py文件中有这个

#accounts/admin.py

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .forms import CustomUserCreationForm, CustomUserChangeForm
from .models import CustomUser

class CustomUserAdmin(UserAdmin):
    add_form = CustomUserCreationForm
    form = CustomUserChangeForm
    model = CustomUser
    list_display = ['username', 'email', 'favourite_colour']

admin.site.register(CustomUser, CustomUserAdmin)

它显示了每个用户的favourite_colourenter image description here

我的问题是,当您单击用户后,如何创建一个字段来编辑这个CustomUser属性?,例如这样enter image description here我欢迎任何帮助,因为我不太擅长阅读文档。请问你是否需要更多的代码添加到问题,我从来没有问过Django问题


Tags: django用户frompy模型importauthadmin
1条回答
网友
1楼 · 发布于 2024-05-29 11:04:53

经过一番仔细研究,我发现了一个fieldsets选项(link1link2link3),可以在我的CustomUserAdmin代码中使用。在我的CustomUserAdmin类中,我现在有:

class CustomUserAdmin(UserAdmin):
    add_form = CustomUserCreationForm
    form = CustomUserChangeForm
    model = CustomUser
    list_display = ['username', 'email', 'favourite_colour']

    fieldsets = UserAdmin.fieldsets + (
            ('Extra Fields', {'fields': ('favourite_colour',)}),
    )

相关问题 更多 >

    热门问题