如何解决在管理页面的教师模型下查看用户模型,该模型与Django中的用户具有一对一关系
这是models.py文件。 这里的老师与用户有外键关系。
from django.db import models
from django.contrib.auth.models import User
from django.db import models
from django.conf import settings
from django.utils.text import slugify
from django.urls import reverse
# Create your models here.
import misaka
from departments.models import Department
teacher_rank = [
("Lecturer","Lecturer"),("Assistant professor","Assistant professor"),("Associate professor","Associate professor"),("Professor","Professor"),("Professor emeritus","Professor emeritus"),]
class Teacher(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
department = models.ForeignKey(Department,blank=False,related_name="teachers",on_delete=models.CASCADE)
profile_pic = models.ImageField(upload_to='teachers/profile_pics',blank=True)
Teacher_ID = models.CharField(max_length=20,unique=True,blank=False)
portfolio_site = models.URLField(blank=True)
academic_rank = models.CharField(blank=False,max_length=100,choices=teacher_rank)
teacher_slug = models.SlugField(allow_unicode=True,unique=True)
def __str__(self):
return self.user.username
def save(self,*args,**kwargs):
self.teacher_slug = slugify(self.user.username)
super().save(*args,**kwargs)
def get_absolute_url(self):
return reverse("teachers:teacher_detail",kwargs={"department_slug":self.department.department_slug,"teacher_slug":self.teacher_slug})
class Meta:
ordering = ["Teacher_ID"]
unique_together = ["Teacher_ID","department"]
在此处,教师模型的详细信息在django的管理页面的“用户模型”下查看。 admin.py文件
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
# Register your models here.
from .models import Teacher
class TeacherInline(admin.StackedInline):
model = Teacher
can_delete = False
verbose_name_plural = "teacher"
fk_name = 'user'
class TeacherAdmin(UserAdmin):
inlines = (TeacherInline,)
def get_inline_instances(self,request,obj=None):
if not obj:
return list()
return super(TeacherAdmin,self).get_inline_instances(request,obj)
admin.site.unregister(User)
admin.site.register(User,TeacherAdmin)
实施代码后,教师详细信息显示在管理站点的“用户”部分下。 我想要的是在“教师”部分下查看用户详细信息
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。