Отображение подробного названия на странице профиля Django DetailView (конкретный экземпляр модели)

Я работаю над страницей для отображения профиля пользователя. Я успешно отобразил экземпляр профиля пользователя, который выглядит так, как показано на скриншоте ниже. Я хочу изменить то, что мне нужно, - отображать не фактическое имя поля, а его расширенное название. Я провел некоторые исследования, но не уверен, как реализовать это с моей текущей установкой.

Мой models.py:

class Profile(models.Model): 
    MALE = 'M'
    FEMALE = 'F'
    OTHER = 'O'
    UNSPECIFIED = "U"
    GENDER_CHOICES = [
        (MALE, 'Male'),
        (FEMALE, 'Female'), 
        (OTHER, 'Other'),
        (UNSPECIFIED, 'Prefer not to say'),
    ]

    user = models.OneToOneField(User, on_delete=models.CASCADE)
    phone_number = models.CharField(verbose_name='Mobile Phone Number', max_length=20)
    bio = models.TextField(verbose_name='Bio', max_length=500, blank=True, null=True)
    date_of_birth = models.DateField(verbose_name='Date of Birth', blank=True, null=True)
    first_name = models.CharField(verbose_name='First Name', max_length=255, blank=True, null=True)
    surname = models.CharField(verbose_name='Surname', max_length=255, blank=True, null=True)
    gender = models.CharField(verbose_name='Gender', max_length=255, choices=GENDER_CHOICES, blank=True, null=True)
    emergency_contact_name = models.CharField(verbose_name='Emergency Contact Name', max_length=255, blank=True, null=True)
    emergency_contact_number = models.CharField(verbose_name='Emergency Contact Number', max_length=20, blank=True, null=True)
    business = models.ForeignKey(BusinessProfile, null=True, blank=True, on_delete=models.SET_NULL)
    creation_date = models.DateTimeField(auto_now_add=True)

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

Views.py:

class ShowProfileView(DetailView):
    model = Profile
    template_name = 'profiles/user_profile.html'

    def get_context_data(self, *args, **kwargs):
        context = super(ShowProfileView, self).get_context_data(*args, **kwargs) # super gives access to parent class methods
        user_profile = get_object_or_404(Profile, id=self.kwargs['pk']) # 'id' is representative of the <int:pk> tag in the url. This means could change 'pk' to be 'id' in both view and url files, and it would still work. So within the url 'pk' is the dictionary key,
        # and the actual value which is passed into the url (that you see in the search bar) is the dictionary value. 
        context["user_profile"] = user_profile
        return context

    def get_object(self, *args, **kwargs):
        obj = Profile.objects.filter(id=self.kwargs['pk']).values('first_name', 'surname', 'date_of_birth', 'phone_number', 'bio', 'date_of_birth', 'gender', 'emergency_contact_name', 'emergency_contact_number') # list of dictionaries
        object = obj[0]
        return object

user_profile.html:

    {% extends "base.html" %}

    {% block content %}

        <h1>Profile</h1>
        <br/><br/>
        {% csrf_token %}
        <ul>
        {% for k, v in object.items %}
        <p>{{ k }}: {{ v }}
        {% endfor %}
        </ul>
        <a href='{% url "profiles:edit_profile" pk=user.profile.id %}'>Edit Profile</a>


    {% endblock %}  

И скриншот того, как это выглядит: enter image description here

Любая помощь очень ценится! Спасибо.

Вернуться на верх