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