Python 使用Django admin用户表单添加内联用户配置文件表单时出现问题

Python 使用Django admin用户表单添加内联用户配置文件表单时出现问题,python,django,django-admin,Python,Django,Django Admin,我在django项目中遇到了一个小问题,我希望我能在这里得到一些好的答案 我通过以下代码将用户配置文件内联表单添加到django用户表单中: from django.core.exceptions import ValidationError from django.contrib import admin from django.contrib.auth.admin import UserAdmin from django.contrib.auth.forms import UserChang

我在django项目中遇到了一个小问题,我希望我能在这里得到一些好的答案

我通过以下代码将用户配置文件内联表单添加到django用户表单中:

from django.core.exceptions import ValidationError
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.forms import UserChangeForm, UserCreationForm
from django.contrib.auth.models import User
from djangocalendar.models import UserProfile

from tableapp.models import *
from djangocalendar.models import *
from django import forms

class UserProfileInline(admin.StackedInline):
    model = UserProfile
    can_delete = True
    verbose_name_plural = 'profile'


class MyUserChangeForm(UserChangeForm):
    def clean_first_name(self):
        if self.cleaned_data["first_name"].strip() == '':
            raise ValidationError("First name is required.")
        return self.cleaned_data["first_name"]

    def clean_last_name(self):
        if self.cleaned_data["last_name"].strip() == '':
            raise ValidationError("Last name is required.")
        return self.cleaned_data["last_name"]


# Define a new User admin
class MyUserAdmin(UserAdmin):
    form = MyUserChangeForm
    inlines = UserProfileInline,


# Register your models here
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
我面临的问题是,这个内联出现在用户添加表单和更改用户表单中。我不希望在添加用户时显示它

如此屏幕截图所示:内联表单与添加用户表单一起出现!我不想在这里添加内联表单。但我想在使用其他表单(如个人表单、信息表单)编辑用户时显示内联表单

我找到了解决办法

定义一个新的用户管理员 我找到了解决办法

定义一个新的用户管理员
class MyUserAdmin(UserAdmin):
    form = MyUserChangeForm
    inlines = UserProfileInline,

    def get_inline_instances(self, request, obj=None):
        if not obj:
            return list()
        return super(MyUserAdmin, self).get_inline_instances(request, obj)