Внешний ключ для доступа к данным Django - PullRequest
0 голосов
/ 24 декабря 2018

Я хочу отобразить role_title в шаблоне, используя user_role

  class UserProfile(models.Model):
        user = models.OneToOneField(User, on_delete=models.CASCADE)
        user_role = models.ForeignKey(Roles, on_delete=models.CASCADE)

        def __str__(self):
              return self.user.username

    class Roles(models.Model):
        role_title = models.CharField(max_length=30)
        role_description = models.CharField(max_length=100)

        def get_absolute_url(self):
            return reverse('role-create')

        def __str__(self) : 
            return self.role_title

1 Ответ

0 голосов
/ 25 декабря 2018

Есть много способов сделать это.Как:

Для UserDetailView шаблон:

# View

class UserDetailView(DetailView):
    model = User
    ...

# In Template

{{ object.userprofile.user_role.role_title }}

Для UserProfileDetailView:

class UserProfileDetailView(DetailView):
    model = UserProfile
    ...

# In Template

{{ object.user_role.role_title }}

И для любого зарегистрированного пользователя:

{{ user.userprofile.user_role.role_title }}
...