员工模型详细信息未显示在 django 模板的导航栏中
Employee model details not showing in navbar in django template
我在 navbar.html
中显示我的员工姓名和照片时遇到问题
我有一个来自帐户应用程序结构的 CustomUser 模型,如下所示
core
|_accounts
|_models.py (CustomUser is in here)
|
|_employees
|_models.py (Employee model in here)
我的自定义用户如下
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(_('email address'), unique=True)
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
date_joined = models.DateTimeField(default=timezone.now)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = CustomUserManager()
def __str__(self):
return self.email
我的员工模型是
class Employee(models.Model):
# PERSONAL DATA
user = models.ForeignKey(User,on_delete=models.CASCADE, related_name="employees")
title = models.CharField(_('Title'), max_length=10, default='Mr', choices=TITLE, blank=False, null=True)
image = models.ImageField(_('Profile Image'), upload_to='avatars/', blank=True, null=True, help_text='upload image < 2.0MB')#work on path username-date/image
firstname = models.CharField(_('Firstname'), max_length=125, null=False, blank=False)
lastname = models.CharField(_('Lastname'), max_length=125, null=False, blank=False)
在我的导航栏模板中有
<img alt="image" src="{{ request.user.employees.image.url }}" class="user-img-radious-style">
和
<div class="dropdown-title">Hello {{ request.user.firstname }}</div>
我的模板未显示所需的结果
首先,您的用户字段应该与 CustomUser
相关,而不是 User
class。
此外,request.user
会在 settings.py 中为您提供 AUTH_USER_MODEL
设置的实例,在您的情况下是 CustomUser
模型的实例,该实例没有firstname
个字段。
AbstractBaseUser
没有 first_name
、last_name
字段,相反,您可以将继承切换到 AbstractUser
,然后再切换到 CustomUser
class 会自动继承 first_name
和 last_name
.
或者按照@Ankit 的建议,您可以通过 request.user.employee.firstname
获得 Employee
名字
请记住,按照@Iain 的建议,您的关系应该是 OneToOne。
我在 navbar.html
中显示我的员工姓名和照片时遇到问题我有一个来自帐户应用程序结构的 CustomUser 模型,如下所示
core
|_accounts
|_models.py (CustomUser is in here)
|
|_employees
|_models.py (Employee model in here)
我的自定义用户如下
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(_('email address'), unique=True)
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
date_joined = models.DateTimeField(default=timezone.now)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = CustomUserManager()
def __str__(self):
return self.email
我的员工模型是
class Employee(models.Model):
# PERSONAL DATA
user = models.ForeignKey(User,on_delete=models.CASCADE, related_name="employees")
title = models.CharField(_('Title'), max_length=10, default='Mr', choices=TITLE, blank=False, null=True)
image = models.ImageField(_('Profile Image'), upload_to='avatars/', blank=True, null=True, help_text='upload image < 2.0MB')#work on path username-date/image
firstname = models.CharField(_('Firstname'), max_length=125, null=False, blank=False)
lastname = models.CharField(_('Lastname'), max_length=125, null=False, blank=False)
在我的导航栏模板中有
<img alt="image" src="{{ request.user.employees.image.url }}" class="user-img-radious-style">
和
<div class="dropdown-title">Hello {{ request.user.firstname }}</div>
我的模板未显示所需的结果
首先,您的用户字段应该与 CustomUser
相关,而不是 User
class。
此外,request.user
会在 settings.py 中为您提供 AUTH_USER_MODEL
设置的实例,在您的情况下是 CustomUser
模型的实例,该实例没有firstname
个字段。
AbstractBaseUser
没有 first_name
、last_name
字段,相反,您可以将继承切换到 AbstractUser
,然后再切换到 CustomUser
class 会自动继承 first_name
和 last_name
.
或者按照@Ankit 的建议,您可以通过 request.user.employee.firstname
Employee
名字
请记住,按照@Iain 的建议,您的关系应该是 OneToOne。