Почему в шаблоне django доступны только некоторые контекстные данные?

У меня проблемы с доступом к некоторым контекстным данным в шаблоне django, возможно, из-за элементарного непонимания с моей стороны. Пожалуйста, посмотрите сокращенный код ниже. Мое представление таково:

class UserCourseListView(LoginRequiredMixin, generic.ListView):

model = CustomUser    
template_name = 'account/course/list.html'
context_object_name = 'puser_course_list'

def get_queryset(self):        
    return CustomUser.objects.filter(username=self.request.user.username)

Моя модель:

class CustomUser(AbstractUser):
    email = models.EmailField(max_length=254, blank=False,)
    course = models.ManyToManyField(Course, related_name="course", blank=True)
    firstname = models.TextField(max_length=254, blank=True )
    surname = models.TextField(max_length=254, blank=True )
    nickname = models.TextField(max_length=254, blank=True )


def __str__(self):
    return str(self.id)
def get_absolute_url(self):
    return reverse('patient_user_detail', args=[str(self.id)])

А шаблон:

 {% for pcourse in puser_course_list %}    
          
    <dt>{{ pcourse.courses_joined.all }}</dt>
    <dt>{{ pcourse.id }}</dt>
    <dt>{{ pcourse.username }}</dt>
    <dt>{{ pcourse.firstname }}</dt>
    <dt>{{ pcourse.surname }}</dt>

 {% endfor %}

Я могу получить доступ к идентификатору пользователя, имени пользователя и извлечь набор запросов из связанной модели (используя связанное имя 'courses_joined'), но не могу извлечь имя и фамилию? Любые мысли или помощь были бы очень признательны. Я предполагаю, что контекстный процессор не требуется в этом сценарии, так как все данные должны быть в объекте context_object?

Не могу комментировать из-за репутации, поэтому оставляю свои комментарии здесь, извините :(

)
  • Это безумие, потому что я не вижу причин, почему не отображаются только имя и фамилия, просто убедитесь, что у пользователя есть эти значения свойств
  • .
  • Попробуйте повторно запустить makemigrations и migrate на всякий случай

Мы отлаживали это вместе в сессии.

Проблема заключалась в том, что firstname и surname были фактически пустыми. Что не было пустым, так это first_name и last_name, которые модель наследует от AbstractUser.

Удаление firstname и surname из модели и использование двух других атрибутов решило эту проблему.

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