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

时间:2014-08-14 22:43:58

标签: javascript python html django django-views

我正在创建一个用户可以登录并分配默认开始和结束点的地图。我是Django和html的新手,现在我不知道如何将变量值传递给html。

这是我的views.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);

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

2 个答案:

答案 0 :(得分:6)

render_to_response有一个可选参数,你只能用它,它被称为上下文。它必须是一本字典。

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

您可以使用{{ name }}模板中的用户名值 检查Django Tutorial是否有复杂的示例项目。

答案 1 :(得分:0)

您也可以通过这种方式传递对象:

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