Почему в шаблоне 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 из модели и использование двух других атрибутов решило эту проблему.