【发布时间】:2016-07-08 22:35:06
【问题描述】:
型号
class Person( models.Model ):
first_name = models.CharField( max_length=50 )
last_name = models.CharField( max_length=50 )
def __str__(self):
return "{0} {1}".format( self.first_name, self.last_name )
查看功能
def getPersonData(request):
currPersonData = {}
# get current user
currentUser = request.user
# create a person object based on who is logged in.
person = Person.objects.create(first_name=currentUser.first_name,
last_name=currentUser.last_name)
# getting front loaded personMeta, that user CANNOT provide
personDetails = PersonMeta.objects.filter(legal_first_name=currentUser.first_name,
legal_last_name=currentUser.last_name).values()
# setting hash key for dict
currUserKey = "{0} {1}".format(currentUser.first_name, currentUser.last_name)
# setting dictionary
# data[currUserKey] = currentUser
# if person details is not false
if (personDetails):
currPersonData[currUserKey] = personDetails
return currPersonData
查看调用函数并将数据返回到模板。
def signup(request):
currPersonData = getPersonData( request )
return render( request, '/signup.html/', {'data': sorted( currPersonData.items( ) )}, )
网址
url(r'^signup/$', views.signup),
模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SignUp</title>
</head>
<body>
{% for tuple in data %}
<p>Tuple key: {{ tuple.0 }}</p>
{% for key, value in tuple.1.0.items %}
<p>Dict key, value: {{ key }}: {{ value }}</p>
{% endfor %}
{% endfor %}
{% for values in eb %}
<p>values</p>
{% endfor %}
</body>
</html>
以上所有似乎都按我期望的方式工作。我可以获取我想要的数据并将其传递给模板。现在我想获取下面模型的所有对象,并将所有这些对象传递给我的“/signup.html/”,除了上面传递的内容,这样我就可以开始表单处理了。
class Elective( models.Model ):
elective_title = models.CharField( max_length=100 )
elective_description = models.CharField( max_length=100 )
def __str__(self):
return "{0}".format( self.elective_title )
我尝试关注 Django Pass Multiple Models to one Template
和 Refer to multiple Models in View/Template in Django
结果不成功,现在我已经为此工作了一段时间,我认为我的下一个最佳举措是寻求帮助。
【问题讨论】:
-
为什么不在上下文中简单地传递更多变量? (在
render函数中)。 -
@Wtower 您介意指点示例或文档吗?
标签: django django-views