晚上好,
我目前正在使用 Django 创建一个网站,并使用用户配置文件扩展了用户。不过我有一个小问题。这是我的情况:
- 我扩展了用户配置文件以添加自定义字段。
- 我将模型添加到用户管理模型中,因此当我添加用户时,我可以直接填写字段来创建配置文件。
- 现在,如果我不在这些新的自定义用户字段中添加任何内容,则在用户添加页面中,Django 管理员不会向我抛出错误,指出这些字段为空(并且它们不应该为空)
- 我希望它在此“用户添加管理”页面中向我抛出错误,以便管理员在添加新用户时必须填写个人资料。
- 所有用户都将添加到管理面板中。
这可能吗?多谢!
在管理.py中
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
from django.contrib.auth.models import User
from accounts.models import UserProfile
class UserProfileInline(admin.TabularInline):
model = UserProfile
class UserAdmin(DjangoUserAdmin):
inlines = [ UserProfileInline,]
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
在模型.py中
class UserProfile(models.Model):
user = models.OneToOneField(User)
employee_number = models.PositiveIntegerField(unique=True)
def __unicode__(self):
return 'Number'
默认情况下,允许空内联,因此不会对空表单进行进一步检查。您需要手动覆盖它:
class UserProfileForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(UserProfileForm, self).__init__(*args, **kwargs)
if self.instance.pk is None:
self.empty_permitted = False # Here
class Meta:
model = UserProfile
class UserProfileInline(admin.TabularInline):
model = UserProfile
form = UserProfileForm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)