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

Printing data from fields that exist within a model onto an HTML page in Django

我正在尝试将模型中存在的字段打印到 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

查看:

def all(request):
    users = User.objects.filter(is_active=True)
    return render_to_response('all.html', locals(), context_instance=RequestContext(request))

HTML:

{% 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 %}

除非您希望获得所有用户之后的所有地址,否则请将第二个循环放在第一个循环中。

您正在将 users 对象的集合 User 传递给模板渲染。 User 没有 street_address 字段 - Address 有。您需要将 Address 个对象传递给表单。

似乎 street_address 只是一个 CharField,而不是任何类型的列表。

如果 user 有一个 street_address 字段,你可以简单地做:

{% 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 %}