【问题标题】:In Django admin, can I prevent added user profile fields from appearing on "Add user" page?在 Django 管理员中,我可以阻止添加的用户配置文件字段出现在“添加用户”页面上吗?
【发布时间】:2016-07-04 15:24:38
【问题描述】:

我创建了一个配置文件模型,其中包含用户模型的附加字段。它按预期工作,但是当我添加新用户时,添加的字段同时出现在“添加用户”页面(第一页)和“更改用户”页面(第二页)上。如何防止我添加的字段出现在“添加用户”页面上?

models.py

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

class Member(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    my_added_field = models.CharField(max_length=15)

admin.py

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

from .models import Member

class MemberInline(admin.StackedInline):
    model = Member

class MemberAdmin(UserAdmin):
    inlines = (MemberInline,)

admin.site.unregister(User)
admin.site.register(User, MemberAdmin)

【问题讨论】:

    标签: python django django-admin django-profiles


    【解决方案1】:

    您需要在 Meta 中使用 exclude = 'your-field-name' 'your-field-name' 是您不想在管理部分显示的字段。

    【讨论】:

    • 我需要扩展 UserCreationForm,并排除那里的字段吗?
    • 不行,你需要把这段代码放到序列化类 Meta: exclude = 'you-field-name'
    • 我是 Web 开发和 Django 的新手,您能否提供一个链接,让我可以阅读更多相关信息?我在 djangoproject.com 上找到的信息描述了使用序列化程序将模型转换为其他格式(例如 json、xml)以及创建自定义字段。另外,我想知道这种方法是否会从所有表单中排除我添加的字段?我只想从 UserCreationForm 中排除它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 2014-05-08
    • 2012-07-31
    • 2012-07-07
    • 2019-12-12
    • 2021-03-07
    相关资源
    最近更新 更多