在Django中将模型中存在的字段中的数据打印到HTML页面上

在Django中将模型中存在的字段中的数据打印到HTML页面上,django,django-models,Django,Django Models,我试图在Django中将模型中存在的字段打印到HTML页面上 我希望街道地址字段打印到页面上。用户名打印到任何问题的页面上。最好的方法是什么 型号: from django.db import models from django.contrib.auth.models import User class Address(models.Model): user = models.ForeignKey(User) street_address = models.CharField

我试图在Django中将模型中存在的字段打印到HTML页面上

我希望街道地址字段打印到页面上。用户名打印到任何问题的页面上。最好的方法是什么

型号:

from django.db import models
from django.contrib.auth.models import User

class Address(models.Model):
    user = models.ForeignKey(User)
    street_address = models.CharField(max_length = 200)
    city = models.CharField(max_length = 100)
    state = models.CharField(max_length = 100)
    zipcode = models.IntegerField(max_length = 5)
    updated = models.DateTimeField(auto_now = True, auto_now_add = False)
    timestamp = models.DateTimeField(auto_now = False, auto_now_add = True)
    active = models.BooleanField(default = True)

    def __str__(self):
        return self.user.address

class Job(models.Model):
    user = models.ForeignKey(User)
    position = models.CharField(max_length = 200)
    employer_address = models.CharField(max_length = 200)
    city = models.CharField(max_length = 100)
    state = models.CharField(max_length = 100)
    zipcode = models.IntegerField(max_length = 5)
    start_date = models.DateField(auto_now = False, auto_now_add = False)
    end_date = models.DateField(auto_now = False, auto_now_add = False)
    updated = models.DateTimeField(auto_now = True, auto_now_add = False)
    timestamp = models.DateTimeField(auto_now = False, auto_now_add = True)
    phone = models.CharField(max_length = 20, null=True, blank=True)
    active = models.BooleanField(default = True)

    def __str__(self):
        return self.position
视图:

HTML:

{%extends'home.html%}
{%block content%}
{users%%中的用户为%s}
  • {{user}}
  • {%endfor%} {%endblock%}
    除非您希望在所有用户之后拥有所有地址,否则请将第二个循环放在第一个循环中

    您正在将
    用户
    ,一组
    用户
    对象传递到模板渲染<代码>用户没有
    街道地址
    字段-
    地址
    有。您需要将
    Address
    对象传递给表单

    它还显示,
    street\u address
    只是一个
    CharField
    ,而不是任何类型的列表

    如果
    user
    street\u address
    字段,您只需执行以下操作:

    {% for user in users %}
        <li>{{ user }}</li>
        <li>{{ user.street_address }}</li>
    {% endfor %}
    

    {%用于地址%中的地址}
    
  • {{address.user}
  • {{address.street_address}
  • {%endfor%}
    似乎仍然没有将地址信息打印到页面上。正确,我从管理面板添加了一个图像,显示该字段已填充。非常好的解释!我现在开始明白这一点,但我犯了一个错误。“异常值:未定义全局名称‘地址’”啊,知道了!刚从进口。非常感谢!
    {% extends 'home.html' %}
    
    {% block content %}
    
    <!-- user is being called from the variable we declared as users in the previous page -->
    
    {% for user in users %}
    
    <li>{{ user }}</li>
    
    {% endfor %}
    
    
    
    <!-- {% for address in user.street_address %}
    
    <li>{{address}}</li>
    
    {% endfor %} -->
    
    {% endblock %}
    
    {% for user in users %}
        <li>{{ user }}</li>
        <li>{{ user.street_address }}</li>
    {% endfor %}
    
    def all(request):
        addresses = Address.objects.all()
        return render_to_response('all.html', locals(), context_instance=RequestContext(request))
    
    {% for address in addresses %}
        <li>{{ address.user }}</li>
        <li>{{ address.street_address }}</li>
    {% endfor %}