Django如何将数据从视图发送到模板

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django如何将数据从视图发送到模板相关的知识,希望对你有一定的参考价值。

model.朋友

class Peer(models.Model):
    router = models.ForeignKey(Router, on_delete=models.CASCADE)
    ipv4_address = models.CharField(max_length=250)
    remote_as = models.CharField(max_length=250)

我在Django管理员更改表单中有一个自定义按钮

<input type="submit" value="Test Peer" name="_peer-test">

然后在admin.py中

def response_change(self, request, obj):
    if "_peer-test" in request.POST:
       self.message_user(request, "Peer Tested")
       url = request.POST.get('obj', '/peeringmanager/export')
       remote_as = obj.remote_as
       url += "?remote_as={}".format(remote_as)
       return HttpResponseRedirect(url)

所以我将数据(remote_as)从obj发送到另一个视图

views.朋友

def export(request):
    remote_as = request.GET.get('remote_as','')
    selected_peer = Peer.objects.filter(remote_as__exact=remote_as)
    template= loader.get_template('delete-peer.html')

    content= {
        'selected_peer':selected_peer,
    }
    return HttpResponse(template.render(content,request))

在这里,我想使用remote_as对象获取与Remote_as相关的表单中的所有对象,并将其发送到html。

删除-peer.html

{% block content %}
    {% for peer in content %}
        <p>{{ peer.remote_as }}</p>
    {% endfor %}

{% endblock %}

但我没有得到任何HTML格式的数据。任何的想法?更好的方式?现在它导致一个空的HTML

答案

模板不知道内容var,您需要指定内容字典中列出的变量:

{
    'selected_peer': selected_peer,
}

把selected_peet改为内容:

{% block content %}
    {% for peer in selected_peer %}
        <p>{{ peer.remote_as }}</p>
    {% endfor %}
{% endblock %}

以上是关于Django如何将数据从视图发送到模板的主要内容,如果未能解决你的问题,请参考以下文章

Django 2.0:将数据从视图发送到包含在另一个模板中的模板(2 个不同的应用程序)

如何通过 ajax 将值从 django 模板发送到视图?

我如何在 django 的同一视图功能中将最近保存的数据发送到模板中

如何将可扩展列表视图的选定子视图数据从片段发送到父活动?

如何将不同的数据从视图传递到模板?

如何将数据发送到 Django 中的基本模板?