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
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
@Wtower例や文書を指しておいてもらえますか? – user136952