如何从views.py 中获取值并在html 模板中使用它?

Posted

技术标签:

【中文标题】如何从views.py 中获取值并在html 模板中使用它?【英文标题】:how to get values from views.py and use it in html template? 【发布时间】:2014-10-08 17:39:57 【问题描述】:

我正在制作一个地图,用户可以在其中登录并分配默认起点和终点。我对 Django 和 html 很陌生,现在我不知道如何将变量值传递给 html。

这是我的观点.py

def maps(request):
    username = password = ''
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(username = username, password = password)

        if user is not None:
            if user.is_active:

                login(request, user)

                traffic_start = Auth.objects.get(user = user).traffic_start
                traffic_end = Auth.objects.get(user = user).traffic_end

    return render_to_response('maps.html')

我正在尝试在此处使用 html 文件中的值

function calcRoute()
    var start = document.getElementById('start').value;
    var end = document.getElementById('end').value;
    var request = 
      origin: start,
      destination: end,
      travelMode: google.maps.TravelMode.DRIVING
    ;
    directionsService.route(request, function(response, status)
      if(status == google.maps.DirectionsStatus.OK)
        directionsDisplay.setDirections(response);
      
    );
  
  google.maps.event.addDomListener(window, 'load', initialize);

我试图寻找类似的线程,但我仍然无法弄清楚,请帮助我,非常感谢!

【问题讨论】:

很多人可能认为有重复,但我需要更多帮助,请谅解。 【参考方案1】:

你也可以这样传递对象:

Models.py

class Profiles(models.Model):
    id = models.IntegerField()
    first_name = models.CharField(max_length=45, blank=False)
    surname = models.CharField(max_length=45, blank=False)

然后在views.py 中引用这个对象并将它传递给你的模板,就像@Tim Zimmermann 提到的那样

Views.py

profiles = Profiles.objects.all;
render_to_response('template.html', 'profiles': profiles )

然后您可以在模板中遍历它们:

template.html

% for profile in profiles %
      <p> profile.first_name </p>
      <p> profile.surname </p>
% endfor %

【讨论】:

【参考方案2】:

render_to_response 有一个可选参数,您可以使用它,它称为上下文。它必须是一本字典。

render_to_response('maps.html', 'name': username)

您可以在模板中将用户名的值与 name 一起使用。 查看Django Tutorial 以获得复杂的示例项目。

【讨论】:

您链接到教程的开发版本。我会假设 OP 使用的是 1.6 版,它在某些重要方面有所不同。 我试过 return render_to_response('maps.html', 'start': traffic_start, 'end': traffic_end) 在html中,我把 Start: End: 但它没用,怎么回事? 在您的 HTML 中,尝试将 value=" start "value=" end " 放入输入标签中。 非常感谢大家!

以上是关于如何从views.py 中获取值并在html 模板中使用它?的主要内容,如果未能解决你的问题,请参考以下文章

Django:如何从views.py获取字典到javascript函数(html文件)

如何从多个SQL表中获取值并在html / php表中显示?

如何从views.py中的模板中获得多项选择

从数组中获取随机值并在 DOM 中发布

如何使用从views.py发送的变量将几个参数传递给url模板标签

Django 动态名称属性并在views.py 中获取值