有人能告诉我为什么我的html中没有显示信息吗?
views.py
@login_required(login_url="http://127.0.0.1:8000/accounts/login/")
def userprofile(request):
data = UserProfile.objects.all()
return TemplateResponse(request, 'personalInfo/details.html', {"data": data})
urls.py
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^details/$', views.userprofile, name='patient'),
]
models.py
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
fullName = models.CharField(max_length = 250, default='', blank=True)
address = models.CharField(max_length = 250, default='', blank=True)
gender = models.CharField(max_length = 250, default='', blank=True)
dob = models.DateField(blank=True)
homePhone = models.CharField(max_length = 250, default='', blank=True)
personalPhone = models.CharField(max_length = 250, default='', blank=True)
emergencyContact = models.CharField(max_length = 250, default='', blank=True)
email = models.CharField(max_length = 250, default='', blank=True)
ppsn = models.CharField(max_length = 250, default='', blank=True)
maritalStatus = models.CharField(max_length = 250, default='', blank=True)
employment = models.BooleanField(blank=True)
personalPic = models.CharField(max_length = 250, default='', blank=True)
def __str__(self):
return self.fullName + ' - ' + self.ppsn
我正在使用{{ userprofile.fullbame }}
来返回此人的姓名。我也使用配置文件与每个用户的一对一链接。
我想要发生的是当用户登录时,他自己的信息显示为当然像个人资料。
答案 0 :(得分:0)
@login_required(login_url="http://127.0.0.1:8000/accounts/login/")
def userprofile(request):
data = UserProfile.objects.all()
return TemplateResponse(request, 'personalInfo/details.html', {"data": data})
这是所有用户个人资料。你可以通过以下方式遍历它们:
{% for profile in data %}
{{ profile.fullName }}
{% endfor %}
但是看起来好像要显示登录用户的配置文件。为此,您需要将视图更改为:
# it's tidier to leave out `login_url` here, and add LOGIN_URL to your settings if required
@login_required
def userprofile(request):
profile = request.user.userprofile
return TemplateResponse(request, 'personalInfo/details.html', {"profile": profile})
现在,您可以在模板中执行
{{ profile.fullName }}
请注意,大写是很重要的。如果您的模型中有fullName
,那么profile.fullname
将无法在模板中使用。请注意,Django中字段名称的推荐样式为lowercase_with_underscores
,即full_name
。