Django的。我尝试在数据表中打印userdata。查询成功但我看不到任何数据。我知道o.k中的数据库。我用sqlite。仅打印“查询成功”。
代码:
views.py
@login_required
def user_profile(request):
user = models.ForeignKey(User, unique=True)
args = {}
args.update(csrf(request))
args['form'] = UserProfileForm()
args['my_data_dictionary'] = request.session['my_data_dictionary']
try:
profile = User.objects.get(pk=request.user.id)
args['profile'] = profile
args['query_result'] = "The query was successful"
except :
args['query_result'] = "The query failed"
return render_to_response('user_profile.html',args,context_instance=RequestContext(request))
user_profile.html
{% extends "base.html" %}
{% block content %}
{{ query_result }}
<table>
{% for item in profile.all %}
<tr>
<td>{{ item }}</td>
</tr>
{% endfor %}
</table>
{% endblock %}
答案 0 :(得分:2)
问题在于这两行
profile = User.objects.get(pk=request.user.id)
和
{% for item in profile.all %}
第一个将只返回一个User
对象。此对象没有all
属性,因此第二个{% for %}
将不会被执行!而不是{% for %}
尝试{{ profile }}
。
更新
首先,我真的不知道这行是什么
user = models.ForeignKey(User, unique=True)
一样。请从那里删除它!现在,我认为User
是正常django.contrib.auth.models.User
。如果是,那么您可以在模板中执行以下操作:
The user {{ profile.username }} has the following name: {{ profile.first_name }} {{ profile.last_name }}
等等 - 查看文档以查看User
的所有字段:https://docs.djangoproject.com/en/dev/ref/contrib/auth/
答案 1 :(得分:0)
获取所有User
个对象
使用方法:
profile = User.objects.all()
args['profile']= profile
和html
{% if profile %}
{% for usr in profile %}
{{ usr }}
{% endfor %}
{% endif %}
答案 2 :(得分:0)
好像你错了代码
{% for item in profile.all %}
{% endfor %}
提供模板中模型字段的访问权限。
相反,要访问用户字段(数据,属性等),您需要在模板中使用以下内容:
<tr>
<td>{{ profile.<user attribute> }}</td>
<td>{{ profile.username }}</td>
</tr>