Django admin中未显示is_staff字段
is_staff定义为布尔字段,但其复选框在管理页面中不可见。但是is_admin是可见的,并且可以更改 我无法使用views.py对该字段进行更改Django admin中未显示is_staff字段,django,django-models,django-views,django-admin,django-custom-user,Django,Django Models,Django Views,Django Admin,Django Custom User,is_staff定义为布尔字段,但其复选框在管理页面中不可见。但是is_admin是可见的,并且可以更改 我无法使用views.py对该字段进行更改 class Users(AbstractBaseUser, PermissionsMixin): objects = UserManager() mobile_no = models.IntegerField(_('MobNumber'), null=True, blank=True,unique=True) email =
class Users(AbstractBaseUser, PermissionsMixin):
objects = UserManager()
mobile_no = models.IntegerField(_('MobNumber'), null=True, blank=True,unique=True)
email = models.EmailField(_('Email'), max_length=75, null=False, blank=False)
first_name = models.CharField(_('FirstName'), max_length=50, null=True, blank=True)
last_name = models.CharField(_('LastName'), max_length=70, null=True, blank=True)
role = models.CharField(_('Role'), max_length=70, null=True, blank=True)
location = models.CharField(_('Location'), max_length=70, null=True, blank=True)
date_time = models.DateTimeField(_('DateTime'), auto_now=True, null=True, blank=True)
activated = models.BooleanField(_('Activated'), default=False)
is_admin = models.BooleanField(_('is_admin'), default=False)
is_staff = models.BooleanField(_('is_staff'), default=False)
def __unicode__(self):
return str(self.mobile_no)
def __str__(self):
return str(self.mobile_no)
def get_full_name(self):
return self.first_name + " " + self.last_name
class Meta:
ordering = ['-id']
@property
def is_staff(self):
return self.is_admin
def has_perm(self, perm, obj=None):
return self.is_admin
def has_module_perms(self, app_label):
return self.is_admin
USERNAME_FIELD = 'mobile_no'
REQUIRED_FIELDS = ['role']
您可以通过导入和继承admin.py中的用户admin来编辑它。下面是一个例子:
# admin.py
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
class UserAdmin(BaseUserAdmin):
model = Users
list_display = ('mobile_no', 'email', 'first_name', 'last_name', 'role', 'location')
fieldsets = (
(('Personal info'), {'fields': ('first_name', 'last_name',)}),
(('Permissions'), {'fields': ('activated', 'is_staff', 'is_superuser', 'groups')}),
(('Important dates'), {'fields': ('date_time', 'last_login')}),
)
class Meta:
model = User
admin.site.register(User, UserAdmin)
错误::(admin.E033)“ordering[0]”的值引用了“username”,它不是“CustomAcco.Users”的属性:(管理员E116)“列表过滤器[0]”的值指的是“is_staff”,而不是指字段:(admin.E116)“list_filter[2]”的值指的是“is_active”,它不指字段。@VA splash-在admin remove用户名中,将is_active更改为activated,我不确定它为什么不接收is_staff,但您可以暂时删除它,看看它是否有效,然后从那里进行调试。啊,刚刚意识到你的模型是命名用户而不是用户。见上文。。。但我会打电话给你的模型用户。当我把is_职员改成其他字段名时,它就起作用了。Django可能有默认的is_员工。