【问题标题】:How to add a date and time column in my Django default user page in admin如何在管理员的 Django 默认用户页面中添加日期和时间列
【发布时间】:2021-09-21 13:09:26
【问题描述】:

我正在使用 Django 默认用户模型,在我的管理员中,我可以看到 5 列,它们是用户名、电子邮件地址、名字、姓氏和员工状态。我需要在此处添加另一列来显示加入日期。有人可以在这里帮忙吗?提前谢谢

用户/admin.py

from django.contrib import admin
from .models import Profile
from django.contrib.auth.admin import UserAdmin as AuthUserAdmin

class UserAdmin(AuthUserAdmin):
    
    list_display = ('username', 'date_joined', 'email')
    


admin.site.register(Profile)

个人资料模型:

from django.contrib.auth.models import User


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default = 'default.jpg', upload_to = 'profile_pics')



    def __str__(self):
        return f'{self.user.username} Profile'

    def save(self):
        super().save()

【问题讨论】:

  • 已经是用户模型的一部分:User.date_joined...
  • 谢谢,我知道这一点,但我的问题是如何在管理员的用户页面中将其显示为一列。

标签: django date admin


【解决方案1】:

请参考这里的documentation。

在您的情况下,您需要将管理类更改为如下所示:

from django.contrib.auth.admin import UserAdmin as AuthUserAdmin

@admin.register(User)
class UserAdmin(AuthUserAdmin):
    ...
    list_display = (..., 'date_joined', ...)
    ...

【讨论】:

  • 非常感谢我在我的用户的 admin.py 中做到了这一点,但没有运气 :( 下面是我的代码来自 django.contrib 的代码 import admin from .models import Profile from django.contrib.auth.admin import UserAdmin 作为 AuthUserAdmin 类 UserAdmin(AuthUserAdmin): list_display = ('username', 'date_joined', 'email') admin.site.register(Profile)
  • 确保装饰管理类注册用户模型,我会编辑我的答案,哦,没关系,我可以看到你已经注册了 Profile 模型。请显示配置文件模型,以便我可以看到它是如何从 django 的用户模型继承的。
  • 谢谢,我编辑了原始帖子并添加了配置文件模型以供您查看。赞赏。
  • 啊,我的回答对您不起作用,因为您使用的是 OneToOne 字段 - 我的回答假设您正在为 Profile 模型使用 AbstractUser 类。尝试阅读此处的文档 - 它们显示了 admin.py docs.djangoproject.com/en/3.2/topics/auth/customizing/… 的示例
猜你喜欢
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多