添加用户的相关对象,并在django admin的用户模型中显示它们
我有两个模型项目和用户在项目中的用户是相关的如下所示 models.py:添加用户的相关对象,并在django admin的用户模型中显示它们,django,django-admin,Django,Django Admin,我有两个模型项目和用户在项目中的用户是相关的如下所示 models.py: class project(models.Model): user=models.OneToOneField(User,on_delete=models.CASCADE) room = models.ForeignKey(room,on_delete=models.CASCADE) goal = models.ManyToManyField(goal) design = models.Ma
class project(models.Model):
user=models.OneToOneField(User,on_delete=models.CASCADE)
room = models.ForeignKey(room,on_delete=models.CASCADE)
goal = models.ManyToManyField(goal)
design = models.ManyToManyField(design)
furniture = models.ForeignKey(furniture,on_delete=models.CASCADE)
created_at = models.DateTimeField(default=datetime.now)
updated_at = models.DateTimeField(default=datetime.now)
现在,我想在django admin的用户页面中为每个用户显示额外的列作为项目,当我单击该列时,它将进入该用户的特定项目详细信息页面
截图:
这是用户列表页面
这是项目列表页面
这是项目详细信息页面
admin.py:
from django.contrib import admin
from .models import project
class ProjectAdmin(admin.ModelAdmin):
readonly_fields = ('user','room','goal','design','furniture','created_at','updated_at')
admin.site.register(project,ProjectAdmin)
请帮助我,提前谢谢您需要为您的用户编写自定义管理员:
来自django.contrib导入管理
从django.contrib.auth导入get\u user\u模型
从django.contrib.auth.admin导入UserAdmin
从django.utils.safestring导入标记_safe
UserModel=get\u user\u model()
admin.site.unregister(UserModel)
@管理员注册(用户模型)
类CustomUserAdmin(UserAdmin):
列表显示=(
“用户名”、“电子邮件”、“名字”、“姓氏”、“用户项目”
)
def用户_项目(自身、obj):
url='/admin/modsy/project/{}/change/'.format(obj.project.pk)
返回标记_safe(“”.format(url))
AttributeError at/admin/auth/user/'user'对象没有属性'project'在admin中的用户页中获取此错误,您能否帮助在您的项目模型中向用户字段添加一个related\u name
:user=models.OneToOneField(user,related\u name='project',on\u delete=models.CASCADE)