在Django Admin中,有没有办法隐藏"Auth"部分?假设这是一个没有应用程序的Django和准系统项目的干净安装,只有管理员.
我目前正在研究一个django项目.我正在尝试将UserProfile模型内联添加到我的用户模型中.在我的models.py中,我有:
class UserProfile(models.Model):
'''
Extension to the User model in django admin.
'''
user = models.ForeignKey(User)
site_role = models.CharField(max_length=128, choices=SITE_ROLE)
signature = models.CharField(max_length=128)
position_title = models.CharField(max_length=128)
on_duty = models.BooleanField(default=False)
on_duty_order = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
在我的admin.py中,我有:
class UserProfileInline(admin.StackedInline):
model = UserProfile
class UserAdmin(admin.ModelAdmin):
inlines = [UserProfileInline]
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
Run Code Online (Sandbox Code Playgroud)
当我运行开发服务器时(是的,我已经重新启动它)我得到以下异常:
NotRegistered at /admin
The model User is not registered
Run Code Online (Sandbox Code Playgroud)
这个例外来自这admin.site.unregister(User)条线.
但是,当我注释掉该行时,我得到以下异常:
AlreadyRegistered at /admin
The model User is already registered
Run Code Online (Sandbox Code Playgroud)
关于我的django设置的东西似乎有点双极.我花了一个小时左右研究这个问题,我的代码似乎对其他人有用.有没有人知道为什么会发生这种情况?
谢谢,特拉维斯
我通过电子邮件覆盖默认模型AbstractUse进行授权.
applications.account.models.py
# -*- coding: utf-8 -*-
import datetime
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
class Meta(AbstractUser.Meta):
swappable = 'AUTH_USER_MODEL'
USERNAME_FIELD = 'email'
Run Code Online (Sandbox Code Playgroud)
applications.account.admin.py 并在admin.py文件中使用我的自定义用户.我尝试了未注册的默认用户模型并注册自定义.
# -*- coding: utf-8 -*-
from django.contrib import admin
from django.http import HttpResponseRedirect
from django.contrib.auth.models import User
from modeltranslation.admin import TabbedTranslationAdmin
from applications.account.models import Profile, Phone, ShippingAddress, PartnerGC, Referral, Operation
from applications.account.models import User as MyUser
class UserInline(admin.StackedInline):
model = Profile
max_num = 1
can_delete = False
class OperationInline(admin.StackedInline):
model = …Run Code Online (Sandbox Code Playgroud)