为什么 django 模板中只有一些上下文数据可用?
Why is only some context data available in django template?
我无法访问 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> # displayed in browser
<dt>{{ pcourse.id }}</dt> # displayed in browser
<dt>{{ pcourse.username }}</dt> # displayed in browser
<dt>{{ pcourse.email }}</dt> # displayed in browser
<dt>{{ pcourse.firstname }}</dt> # not displayed in browser
<dt>{{ pcourse.surname }}</dt> # not displayed in browser
{% endfor %}
我可以访问用户 ID、用户名、电子邮件并从相关模型(使用相关名称 'courses_joined')检索查询集,但无法检索名字和姓氏?任何想法或帮助将不胜感激。我假设在这种情况下不需要上下文处理器,因为所有数据都应该在 context_object?
我们在一个会话中一起调试了这个。
问题是 firstname
和 surname
实际上是空的。
不空的是 first_name
和 last_name
模型继承自 AbstractUser
。
从模型中删除 firstname
和 surname
并使用其他两个属性解决了这个问题。
我无法访问 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> # displayed in browser
<dt>{{ pcourse.id }}</dt> # displayed in browser
<dt>{{ pcourse.username }}</dt> # displayed in browser
<dt>{{ pcourse.email }}</dt> # displayed in browser
<dt>{{ pcourse.firstname }}</dt> # not displayed in browser
<dt>{{ pcourse.surname }}</dt> # not displayed in browser
{% endfor %}
我可以访问用户 ID、用户名、电子邮件并从相关模型(使用相关名称 'courses_joined')检索查询集,但无法检索名字和姓氏?任何想法或帮助将不胜感激。我假设在这种情况下不需要上下文处理器,因为所有数据都应该在 context_object?
我们在一个会话中一起调试了这个。
问题是 firstname
和 surname
实际上是空的。
不空的是 first_name
和 last_name
模型继承自 AbstractUser
。
从模型中删除 firstname
和 surname
并使用其他两个属性解决了这个问题。